Function at 0x4e1830
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x639c91
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe4
mov eax, dword [0x6bd8a0]
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x48
mov dword [esp + 0xf4], eax
mov esi, ecx
xor ebp, ebp
mov dword [esp + 0x18], ebx
call fcn.004063f0
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
cmp edi, ebp
mov dword [esp + 0xfc], ebp
je 0x4e18af
push 1
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x5c], esp
lea eax, [esp + 0x2f]
push eax
push str.PlLevels.xml
mov dword [esp + 0x38], 1
call fcn.00403db0
mov ecx, edi
call fcn.004326e0
mov ebx, dword [esp + 0x14]
jmp 0x4e18b1
xor eax, eax
push 1
push eax
lea ecx, [esp + 0xa4]
mov dword [esp + 0x104], 0xffffffff
call fcn.0041f650
test bl, 1
mov dword [esp + 0xfc], 1
je 0x4e18e2
and ebx, 0xfffffffe
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x9c]
lea ecx, [esp + 0x90]
push ecx
mov ecx, dword [edx + 4]
lea ecx, [esp + ecx + 0xa0]
call fcn.00425ed0
mov ecx, eax
call fcn.00429900
mov edi, dword [esp + 0x90]
mov ecx, dword [edi + 4]
lea ecx, [esp + ecx + 0x90]
mov byte [esp + 0xfc], 2
call fcn.004304e0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
mov ecx, dword [edi + 4]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + ecx + 0x94]
call fcn.004304e0
mov ecx, eax
call fcn.00428ab0
mov edi, dword [esp + 0x104]
push 0x654e58
push edi
mov byte [esp + 0x104], 3
mov dword [esp + 0x48], 1
call fcn.00402610
add esp, 8
test al, al
jne 0x4e1aa0
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + eax + 0x48]
cmp ecx, ebp
lea eax, [esp + eax + 0x48]
je 0x4e19f3
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
or ebx, 2
mov dword [esp + 0x30], esp
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0x14], eax
push 0x6587e6
push 0x6587e4
mov byte [esp + 0x11c], 7
call fcn.00403b50
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
lea edx, [esp + 0xc0]
push edx
lea ecx, [esp + ecx + 0x64]
mov byte [esp + 0x118], 3
call fcn.004304e0
mov ecx, eax
call fcn.0042b430
push edi
push eax
or ebx, 4
call fcn.0041afa0
add esp, 8
test al, al
mov byte [esp + 0x13], 1
je 0x4e19f8
mov byte [esp + 0x13], 0
test bl, 4
mov eax, dword [esp + 0xbc]
je 0x4e1a44
lea ecx, [esp + 0xb8]
and ebx, 0xfffffffb
cmp eax, ecx
je 0x4e1a44
mov ecx, dword [esp + 0xa8]
cmp ecx, ebp
je 0x4e1a44
sub eax, ecx
cmp eax, 0x80
jbe 0x4e1a33
mov edx, ecx
push edx
call fcn.00611869
add esp, 4
jmp 0x4e1a44
push eax
mov eax, dword [esp + 0xac]
push eax
call fcn.005d6970
add esp, 8
test bl, 2
je 0x4e1a4c
and ebx, 0xfffffffd
mov al, byte [esp + 0x13]
test al, al
je 0x4e1b48
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [edx + 4]
lea ecx, [esp + ecx + 0x4c]
call fcn.004304e0
mov ecx, eax
call fcn.00428c50
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x100], 9
call fcn.00422700
lea ecx, [esp + 0x60]
mov byte [esp + 0xfc], 3
call fcn.0042ce80
inc dword [esp + 0x40]
jmp 0x4e1974
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x30], esp
lea eax, [esp + 0x2b]
push eax
push 0x6587e4
call fcn.00403db0
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0xf0]
push ecx
mov ecx, dword [edx + 4]
lea ecx, [esp + ecx + 0x64]
mov byte [esp + 0x118], 3
call fcn.004304e0
mov ecx, eax
call fcn.0042b430
cmp eax, edi
mov byte [esp + 0xfc], 0xb
je 0x4e1b03
mov ebx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
lea ecx, [eax + 0x10]
cmp ebx, ecx
je 0x4e1afa
mov eax, dword [eax]
push edx
push eax
mov ecx, edi
call fcn.00403ff0
mov eax, dword [esp + 0xec]
lea ecx, [esp + 0xe8]
cmp eax, ecx
mov byte [esp + 0xfc], 3
je 0x4e1b4c
mov ecx, dword [esp + 0xd8]
cmp ecx, ebp
je 0x4e1b4c
sub eax, ecx
cmp eax, 0x80
jbe 0x4e1b3c
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e1b4c
push eax
push ecx
call fcn.005d6970
add esp, 8
jmp 0x4e1b4c
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 4]
mov ecx, dword [esp + eax + 0x48]
cmp ecx, ebp
lea eax, [esp + eax + 0x48]
jne 0x4e1bb1
push 0xee7
push str.c:work_fishdom_aqua_gameRifGameFieldControl.h
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x38], esp
lea eax, [esp + 0x33]
push eax
push str.levelXml___NULL
call fcn.00403db0
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x5c], esp
lea edx, [esp + 0x4b]
push edx
push str.Assertion_failed
mov byte [esp + 0x13c], 0xd
call fcn.00403db0
mov byte [esp + 0x134], 3
call fcn.00405c50
add esp, 0x38
lea eax, [esp + 0x13]
push eax
push str.LevelNumber
lea ecx, [esp + 0xb0]
mov dword [esi + 0x230], ebp
mov dword [esi + 0x234], ebp
call fcn.00403db0
lea ecx, [esp + 0xa8]
push 1
mov bl, 0xe
push ecx
mov byte [esp + 0x104], bl
call fcn.0047b440
push eax
lea edx, [esp + 0xe4]
push edx
call fcn.004060d0
sub esp, 8
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
lea edx, [esi + 0x1fe0]
push edx
push ecx
mov byte [esp + 0x120], 0xf
call fcn.00404e00
lea eax, [esi + 0x218]
add esp, 0xc
push eax
call fcn.0047b0b0
mov eax, dword [esp + 0x108]
lea ecx, [esp + 0x104]
add esp, 0x1c
cmp eax, ecx
mov byte [esp + 0xfc], bl
je 0x4e1c6c
mov ecx, dword [esp + 0xd8]
cmp ecx, ebp
je 0x4e1c6c
sub eax, ecx
cmp eax, 0x80
jbe 0x4e1c62
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e1c6c
push eax
push ecx
call fcn.005d6970
add esp, 8
mov eax, dword [esp + 0xbc]
lea edx, [esp + 0xb8]
cmp eax, edx
mov byte [esp + 0xfc], 3
je 0x4e1caf
mov ecx, dword [esp + 0xa8]
cmp ecx, ebp
je 0x4e1caf
sub eax, ecx
cmp eax, 0x80
jbe 0x4e1ca5
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e1caf
push eax
push ecx
call fcn.005d6970
add esp, 8
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x30], esp
lea eax, [esp + 0x2b]
push eax
push 0x6541e8
call fcn.00403db0
mov ecx, dword [esi + 0x2060]
mov edx, dword [ecx + 4]
lea ecx, [edx + esi + 0x2060]
mov byte [esp + 0x114], 0x10
call fcn.004f2a00
mov edx, dword [eax]
mov ecx, eax
mov byte [esp + 0x114], 3
call dword [edx + 8]
push 0x6541e8
lea eax, [esi + 0x2078]
push eax
lea ecx, [esp + 0xe0]
push ecx
call fcn.00404ce0
sub esp, 0xc
mov ecx, esp
lea edx, [esi + 0x2090]
mov dword [esp + 0x30], esp
push edx
push eax
mov bl, 0x11
push ecx
mov byte [esp + 0x120], bl
call fcn.00404e00
add esp, 0xc
mov edx, dword [esi + 0x206c]
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x206c]
mov byte [esp + 0x114], 0x12
call fcn.004f2a00
mov edx, dword [eax]
mov ecx, eax
mov byte [esp + 0x114], bl
call dword [edx + 8]
mov eax, dword [esp + 0xec]
lea ecx, [esp + 0xe8]
cmp eax, ecx
mov byte [esp + 0xfc], 3
je 0x4e1d9d
mov ecx, dword [esp + 0xd8]
cmp ecx, ebp
je 0x4e1d9d
sub eax, ecx
cmp eax, 0x80
jbe 0x4e1d93
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e1d9d
push eax
push ecx
call fcn.005d6970
add esp, 8
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x30], esp
lea edx, [esp + 0x2b]
push edx
push str.time
mov dword [esi + 0x1f44], ebp
mov byte [esi + 0x1be0], 1
call fcn.00403db0
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
lea ecx, [esp + ecx + 0x60]
mov byte [esp + 0x114], 3
call fcn.004304e0
mov ecx, eax
call fcn.0042b350
lea ecx, [esp + 0x13]
push ecx
push str.LevelFileOrder
lea ecx, [esp + 0xb0]
mov dword [esi + 0x1bd8], eax
mov byte [esi + 0x1f0c], 0
call fcn.00403db0
mov edx, dword [esp + 0x40]
push edx
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0x104], 0x14
call fcn.0047af70
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0xc0]
add esp, 8
cmp eax, ecx
mov byte [esp + 0xfc], 3
je 0x4e1e64
mov ecx, dword [esp + 0xa8]
cmp ecx, ebp
je 0x4e1e64
sub eax, ecx
cmp eax, 0x80
jbe 0x4e1e5a
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e1e64
push eax
push ecx
call fcn.005d6970
add esp, 8
lea edx, [esp + 0x13]
push edx
push str.LevelFileTime
lea ecx, [esp + 0xb0]
call fcn.00403db0
mov eax, dword [esi + 0x1bd8]
push eax
lea ecx, [esp + 0xac]
push ecx
mov byte [esp + 0x104], 0x15
call fcn.0047af70
mov eax, dword [esp + 0xc4]
lea edx, [esp + 0xc0]
add esp, 8
cmp eax, edx
mov byte [esp + 0xfc], 3
je 0x4e1edc
mov ecx, dword [esp + 0xa8]
cmp ecx, ebp
je 0x4e1edc
sub eax, ecx
cmp eax, 0x80
jbe 0x4e1ed2
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e1edc
push eax
push ecx
call fcn.005d6970
add esp, 8
mov eax, dword [esi + 0x1be4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x1be4]
cmp eax, ebp
lea ecx, [ecx + esi + 0x1be4]
je 0x4e1f03
call fcn.0048ea80
mov cl, byte [eax + 0x60]
test cl, cl
jne 0x4e1f38
fild dword [esi + 0x1bd8]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
fstp dword [esp + 0x18]
lea edx, [esp + 0x2f]
push edx
push str.LevelTime
call fcn.00403db0
call fcn.00450820
add esp, 0x1c
call fcn.00611c14
mov dword [esi + 0x1bd8], eax
mov eax, dword [esi + 0x1be4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x1be4]
cmp eax, ebp
lea ecx, [ecx + esi + 0x1be4]
je 0x4e1f66
call fcn.0048ea80
mov cl, byte [eax + 0x60]
test cl, cl
je 0x4e1f66
mov byte [esi + 0x1f0c], 1
fild dword [esi + 0x1bd8]
mov edx, dword [esi + 0x1bcc]
fstp dword [esi + 0x1bdc]
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x1bcc]
call fcn.004f2a00
fld dword [eax + 0x4c]
fmul dword [0x65aa2c]
mov byte [eax + 0x50], 0
mov dword [esp + 0x84], 0x6580c8
mov dword [esp + 0x88], ebp
fstp dword [eax + 0x3c]
mov ecx, dword [esi + 0x1b48]
mov dword [esi + 0x1b40], ebp
mov dword [esi + 0x1b38], ebp
mov dword [esi + 0x1b4c], ecx
mov edx, dword [esi + 0x1b60]
mov dword [esi + 0x1b58], ebp
mov dword [esi + 0x1b50], ebp
mov dword [esi + 0x1b64], edx
mov dword [esp + 0x8c], ebp
lea eax, [esp + 0x84]
push eax
lea ecx, [esi + 0x1f8c]
mov byte [esp + 0x100], 0x1b
call fcn.00493570
lea ecx, [esp + 0x84]
mov byte [esp + 0xfc], 3
call fcn.0048f9a0
lea ecx, [esi + 0x1f4c]
mov dword [esi + 0x1bc8], ebp
mov dword [esp + 0x40], ecx
call fcn.00490ae0
lea ecx, [esi + 0x1b68]
mov byte [esi + 0x1b8c], 0
mov dword [esi + 0x1b2c], ebp
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
cmp edx, eax
je 0x4e204c
lea edi, [esp + 0x13]
push edi
push eax
push edx
call fcn.004c5d20
mov eax, dword [esi + 0x1b10]
push eax
call fcn.00611c89
mov dword [esi + 0x1b10], ebp
mov dword [esi + 0x1b14], ebp
mov dword [esi + 0x1b30], ebp
mov dword [esi + 0x1af4], 0xffffffff
mov eax, dword [esi + 0x1ae8]
mov ecx, dword [esi + 0x1ae4]
add esp, 4
cmp ecx, eax
je 0x4e20a4
mov edi, eax
sub edi, eax
je 0x4e209c
push edi
push eax
push ecx
call fcn.00611870
add esp, 0xc
add eax, edi
jmp 0x4e209e
mov eax, ecx
mov dword [esi + 0x1ae8], eax
mov ecx, esi
call fcn.004e1190
mov edx, dword [esi + 0x1fc8]
mov ecx, dword [esi + 0x1fcc]
lea ebp, [esi + 0x1fc8]
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
call fcn.006122e1
test edi, edi
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov dword [esp + 0x18], edi
fmul dword [0x656298]
fild dword [esp + 0x18]
jge 0x4e20f5
fadd dword [0x6532d4]
fsub dword [0x653bc4]
fmulp st(1)
call fcn.00611c14
mov ecx, dword [ebp]
lea edi, [eax + eax*2]
shl edi, 3
add ecx, edi
push ecx
lea ecx, [esp + 0xc4]
call fcn.00403e10
lea ecx, [esp + 0x13]
push ecx
push str.ChipSets
lea ecx, [esp + 0xe0]
mov byte [esp + 0x104], 0x1e
call fcn.00403db0
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0x88]
push eax
mov byte [esp + 0x104], 0x1f
call fcn.004dc490
add esp, 8
mov eax, dword [esp + 0xec]
lea ecx, [esp + 0xe8]
cmp eax, ecx
mov byte [esp + 0xfc], 0x21
je 0x4e219b
mov ecx, dword [esp + 0xd8]
test ecx, ecx
je 0x4e219b
sub eax, ecx
cmp eax, 0x80
jbe 0x4e2191
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e219b
push eax
push ecx
call fcn.005d6970
add esp, 8
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x30], esp
lea edx, [esp + 0x2b]
push edx
push 0x65e9e8
call fcn.00403db0
mov ecx, dword [esp + 0x9c]
mov ecx, dword [ecx + 4]
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + ecx + 0xa0]
mov byte [esp + 0x118], 0x21
call fcn.004304e0
mov ecx, eax
call fcn.00428b50
mov byte [esp + 0xfc], 0x23
jmp 0x4e21f0
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 4]
mov ecx, dword [esp + eax + 0x78]
test ecx, ecx
mov ebx, dword [esp + 0x14]
lea eax, [esp + eax + 0x78]
je 0x4e2284
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
or ebx, 8
mov dword [esp + 0x30], esp
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0x14], eax
push 0x65e9e5
push str.chips
mov byte [esp + 0x11c], 0x27
call fcn.00403b50
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + 4]
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + ecx + 0x94]
mov byte [esp + 0x118], 0x23
call fcn.004304e0
mov ecx, eax
call fcn.0042b430
lea edx, [esp + 0xc0]
push edx
or ebx, 0x10
push eax
mov dword [esp + 0x1c], ebx
call fcn.0041afa0
add esp, 8
test al, al
mov byte [esp + 0x13], 1
je 0x4e2289
mov byte [esp + 0x13], 0
test bl, 0x10
mov eax, dword [esp + 0xbc]
je 0x4e22d9
and ebx, 0xffffffef
lea ecx, [esp + 0xb8]
cmp eax, ecx
mov dword [esp + 0x14], ebx
je 0x4e22d9
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4e22d9
sub eax, ecx
cmp eax, 0x80
jbe 0x4e22c8
mov edx, ecx
push edx
call fcn.00611869
add esp, 4
jmp 0x4e22d9
push eax
mov eax, dword [esp + 0xac]
push eax
call fcn.005d6970
add esp, 8
test bl, 8
je 0x4e22e5
and ebx, 0xfffffff7
mov dword [esp + 0x14], ebx
mov al, byte [esp + 0x13]
test al, al
je 0x4e2331
mov edx, dword [esp + 0x78]
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [edx + 4]
lea ecx, [esp + ecx + 0x7c]
call fcn.004304e0
mov ecx, eax
call fcn.00428c50
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x100], 0x29
call fcn.00422700
lea ecx, [esp + 0x60]
mov byte [esp + 0xfc], 0x23
call fcn.0042ce80
jmp 0x4e21f0
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx + 4]
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + ecx + 0x7c]
call fcn.004304e0
mov ecx, eax
call fcn.004578a0
lea ecx, [esp + 0x60]
call fcn.0041fe40
mov eax, dword [ebp]
lea edx, [esp + 0x13]
push edx
add eax, edi
push eax
mov ecx, ebp
call fcn.0048f940
mov ecx, dword [esp + 0xd4]
lea eax, [esp + 0xd0]
cmp ecx, eax
mov dword [esi + 0x1ba8], 0
lea eax, [esp + 0xc0]
je 0x4e2392
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xd0]
mov edx, dword [esi + 0x1be4]
sub ecx, eax
mov dword [esi + 0x1af0], ecx
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x1be4]
cmp dword [ecx], 0
je 0x4e245a
call fcn.0048ea80
mov ebx, dword [esp + 0x104]
add eax, 0x64
cmp ebx, eax
je 0x4e23e7
mov edi, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
lea ecx, [ebx + 0x10]
cmp edi, ecx
mov ecx, ebx
je 0x4e23de
mov ecx, dword [ebx]
push edx
push ecx
mov ecx, eax
call fcn.00403ff0
mov ecx, dword [esi + 0x1be4]
mov edx, dword [ecx + 4]
lea ecx, [edx + esi + 0x1be4]
call fcn.0048ea80
mov ecx, dword [esi + 0x1bd8]
mov dword [eax + 0x7c], ecx
mov edx, dword [esi + 0x1be4]
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x1be4]
call fcn.0048ea80
add eax, 0x80
lea ecx, [esp + 0xc0]
cmp ecx, eax
je 0x4e245a
mov ecx, dword [esp + 0xd4]
lea edx, [esp + 0xd0]
cmp ecx, edx
lea ecx, [esp + 0xc0]
je 0x4e244a
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xd0]
push edx
push ecx
mov ecx, eax
call fcn.00403ff0
mov eax, dword [esi + 0x1af0]
xor ebp, ebp
xor edi, edi
cmp eax, ebp
jle 0x4e2526
mov ebx, 4
jmp 0x4e2480
mov ecx, dword [esp + 0xd4]
lea eax, [esp + 0xd0]
cmp ecx, eax
lea eax, [esp + 0xc0]
je 0x4e24a0
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xd0]
sub edx, eax
cmp edi, edx
jae 0x4e25e5
lea eax, [esp + 0xd0]
cmp ecx, eax
lea eax, [esp + 0xc0]
je 0x4e24ca
mov eax, dword [esp + 0xc0]
movsx eax, byte [edi + eax]
cmp eax, 0x30
jl 0x4e24db
cmp eax, 0x39
lea ecx, [eax - 0x30]
jle 0x4e24de
lea ecx, [eax - 0x37]
mov eax, dword [esi + 0x1ae8]
cmp eax, dword [esi + 0x1aec]
lea edx, [esi + 0x1ae4]
mov dword [esp + 0x18], ecx
je 0x4e2501
cmp eax, ebp
je 0x4e24fc
mov dword [eax], ecx
add dword [edx + 4], ebx
jmp 0x4e2517
push 1
push 1
lea ecx, [esp + 0x1b]
push ecx
lea ecx, [esp + 0x24]
push ecx
mov ecx, edx
push eax
call fcn.0041cb60
mov eax, dword [esi + 0x1af0]
inc edi
cmp edi, eax
jl 0x4e2480
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x30], esp
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0x14], eax
push 0x65eac8
push str.Line
mov byte [esp + 0x11c], 0x2b
call fcn.00403b50
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + ecx + 0x64]
mov byte [esp + 0x118], 0x23
call fcn.004304e0
mov ecx, eax
call fcn.00428b50
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0xa8]
push ecx
mov ecx, dword [edx + 4]
lea ecx, [esp + ecx + 0x58]
mov byte [esp + 0x100], 0x2d
call fcn.004304e0
mov ecx, eax
call fcn.00495600
mov edi, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
lea ecx, [eax + 0x10]
cmp edi, ecx
je 0x4e25ac
mov eax, dword [eax]
sub edx, eax
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0xb8]
cmp eax, ecx
mov dword [esi + 0x1b00], edx
je 0x4e25f9
mov ecx, dword [esp + 0xa8]
cmp ecx, ebp
je 0x4e25f9
sub eax, ecx
cmp eax, 0x80
jbe 0x4e25ef
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e25f9
push str.basic_string
call fcn.005f2290
push eax
push ecx
call fcn.005d6970
add esp, 8
mov dword [esi + 0x1b04], ebp
mov bl, 0x33
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 4]
mov ecx, dword [esp + eax + 0x54]
cmp ecx, ebp
lea eax, [esp + eax + 0x54]
je 0x4e269c
mov edx, dword [esi + 0x1b04]
sub esp, 0x18
mov ecx, esp
inc edx
lea eax, [ecx + 0x10]
mov dword [esi + 0x1b04], edx
mov dword [eax], ecx
mov dword [esp + 0x30], esp
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0x14], eax
push 0x65eac8
push str.Line
mov byte [esp + 0x11c], 0x31
call fcn.00403b50
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx + 4]
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + ecx + 0x70]
mov byte [esp + 0x118], 0x2d
call fcn.004304e0
mov ecx, eax
call fcn.00428cf0
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x100], bl
call fcn.00422700
lea ecx, [esp + 0x60]
mov byte [esp + 0xfc], 0x2d
call fcn.0042ce80
jmp 0x4e2601
sub esp, 0xc
mov eax, esp
mov dword [eax], 0x6580c8
mov dword [eax + 4], ebp
mov edx, dword [eax]
mov ecx, dword [edx + 4]
mov dword [ecx + eax + 4], ebp
mov edx, dword [esi + 0x1b04]
mov eax, dword [esi + 0x1b00]
mov dword [esp + 0x24], esp
push edx
lea ecx, [esi + 0x258]
push eax
call fcn.004a11f0
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x30], esp
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0x14], eax
push 0x65eac8
push str.Line
mov byte [esp + 0x11c], 0x34
call fcn.00403b50
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [edx + 4]
lea ecx, [esp + ecx + 0x64]
mov byte [esp + 0x118], 0x2d
call fcn.004304e0
mov ecx, eax
call fcn.00428b50
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x100], 0x36
call fcn.00422700
lea ecx, [esp + 0x60]
mov byte [esp + 0xfc], 0x2d
call fcn.0042ce80
mov dword [esi + 0x1b04], ebp
mov dword [esp + 0x18], ebp
lea ecx, [ecx]
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 4]
mov edx, dword [esp + ecx + 0x54]
test edx, edx
lea ecx, [esp + ecx + 0x54]
je 0x4e2c35
lea ecx, [esp + 0xa8]
push ecx
mov ecx, dword [eax + 4]
lea ecx, [esp + ecx + 0x58]
call fcn.004304e0
mov ecx, eax
call fcn.00495600
mov ecx, dword [esi + 0x1b04]
mov eax, dword [esi + 0x1b00]
inc ecx
xor edi, edi
test eax, eax
mov byte [esp + 0xfc], 0x3a
mov dword [esi + 0x1b04], ecx
jle 0x4e2b6f
lea ebp, [esi + 0x284]
lea ecx, [ecx]
mov eax, dword [esp + 0xbc]
xor ebx, ebx
lea edx, [esp + 0xb8]
cmp eax, edx
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x44], ebx
mov byte [esp + 0x13], bl
lea eax, [esp + 0xa8]
je 0x4e27e2
mov eax, dword [esp + 0xa8]
mov al, byte [eax + edi]
cmp al, 0x41
jl 0x4e27f4
cmp al, 0x5a
jg 0x4e27f4
mov byte [esp + 0x13], 1
add al, 0x20
cmp al, 0x30
jne 0x4e2805
mov dword [esp + 0x24], 0xfffffffe
jmp 0x4e28e4
cmp al, 0x61
je 0x4e28e4
cmp al, 0x62
jne 0x4e281e
mov dword [esp + 0x44], 1
jmp 0x4e28e4
cmp al, 0x63
jne 0x4e282f
mov dword [esp + 0x44], 2
jmp 0x4e28e4
cmp al, 0x64
jne 0x4e283d
mov ebx, 1
jmp 0x4e28e4
cmp al, 0x65
jne 0x4e284f
mov ebx, 1
mov dword [esp + 0x44], ebx
jmp 0x4e28e4
cmp al, 0x66
jne 0x4e2865
mov dword [esp + 0x44], 2
mov ebx, 1
jmp 0x4e28e4
cmp al, 0x67
jne 0x4e2870
mov ebx, 2
jmp 0x4e28e4
cmp al, 0x68
jne 0x4e2883
mov dword [esp + 0x44], 1
mov ebx, 2
jmp 0x4e28e4
cmp al, 0x69
jne 0x4e2892
mov ebx, 2
mov dword [esp + 0x44], ebx
jmp 0x4e28e4
push 0xf6f
push str.c:work_fishdom_aqua_gameRifGameFieldControl.h
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x3c], esp
lea eax, [esp + 0x33]
push eax
push str.false
call fcn.00403db0
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x58], esp
lea edx, [esp + 0x4b]
push edx
push str.Assertion_failed
mov byte [esp + 0x13c], 0x3b
call fcn.00403db0
mov byte [esp + 0x134], 0x3a
call fcn.00405c50
add esp, 0x38
mov eax, dword [esi + 0x1b04]
dec eax
push eax
push edi
mov ecx, ebp
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov cl, byte [esp + 0x13]
mov byte [eax], cl
cmp dword [esp + 0x24], 0xffffffff
jne 0x4e291c
mov edx, dword [esi + 0x1b04]
dec edx
push edx
push edi
mov ecx, esi
call fcn.00492a90
test al, al
jne 0x4e2924
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x4e292c
mov dword [esp + 0x24], 0
test ebx, ebx
jle 0x4e29e4
mov ecx, dword [esi + 0x1ba8]
inc ecx
cmp ebx, 2
mov dword [esi + 0x1ba8], ecx
jne 0x4e2965
mov ecx, dword [esi + 0x230]
mov eax, dword [esi + 0x234]
inc ecx
inc eax
mov dword [esi + 0x230], ecx
mov dword [esi + 0x234], eax
jmp 0x4e29e4
cmp ebx, 1
jne 0x4e2972
inc dword [esi + 0x230]
jmp 0x4e29e4
push 0xf84
push str.c:work_fishdom_aqua_gameRifGameFieldControl.h
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x40], esp
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0x14], eax
push 0x65409d
push str.false
mov byte [esp + 0x124], 0x3c
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x54], esp
mov dword [eax], ecx
mov dword [esp + 0x54], ecx
mov dword [ecx + 0x14], eax
push 0x65341c
push str.Assertion_failed
mov byte [esp + 0x13c], 0x3e
call fcn.00403b50
mov byte [esp + 0x134], 0x3a
call fcn.00405c50
add esp, 0x38
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x18], eax
jge 0x4e29f2
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
test eax, eax
jl 0x4e2a19
mov eax, dword [esp + 0x44]
mov ecx, dword [esi + 0x1b04]
push 0xffffffffffffffff
push 1
push ebx
push eax
dec ecx
push ecx
push edi
mov ecx, esi
call fcn.004a8d00
jmp 0x4e2b60
mov edx, dword [esi + 0x1b04]
dec edx
push edx
push edi
mov ecx, ebp
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], ecx
mov edx, dword [esi + 0x1b04]
dec edx
push edx
push edi
mov ecx, ebp
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov dword [eax + 0xc], ebx
mov eax, dword [esi + 0x1b04]
dec eax
push eax
push edi
mov ecx, ebp
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov ecx, dword [esi + 0xa0]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x1b04]
dec edx
push edx
push edi
mov ecx, ebp
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
xor ebx, ebx
mov dword [eax + 0x14], ebx
mov eax, dword [esi + 0x1b04]
dec eax
push eax
push edi
mov ecx, ebp
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov ecx, dword [0x6b7f08]
mov dword [eax + 0x18], ecx
mov edx, dword [esi + 0x1b04]
dec edx
push edx
push edi
mov ecx, ebp
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov dword [eax + 0x1c], ebx
mov eax, dword [esi + 0x1b04]
dec eax
push eax
push edi
mov ecx, ebp
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov ecx, dword [esp + 0x24]
push 0x48
mov dword [eax + 4], ecx
call fcn.004063f0
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebx
mov byte [esp + 0xfc], 0x3f
je 0x4e2b0a
push 1
mov ecx, eax
call fcn.004a8780
jmp 0x4e2b0c
xor eax, eax
push 1
push eax
lea ecx, [esp + 0x68]
mov byte [esp + 0x104], 0x3a
call fcn.0048eed0
mov eax, dword [esi + 0x1b04]
lea edx, [esp + 0x60]
push edx
dec eax
push eax
push edi
lea ecx, [esi + 0x258]
mov byte [esp + 0x108], 0x40
call fcn.0048f820
mov ecx, eax
call fcn.0048f600
mov ecx, eax
call fcn.00493570
lea ecx, [esp + 0x60]
mov byte [esp + 0xfc], 0x3a
call fcn.0048f9a0
mov eax, dword [esi + 0x1b00]
inc edi
cmp edi, eax
jl 0x4e27b0
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x38], esp
mov dword [esp + 0x34], ecx
mov dword [ecx + 0x14], eax
push 0x65eac8
push str.Line
mov byte [esp + 0x11c], 0x41
call fcn.00403b50
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [edx + 4]
lea ecx, [esp + ecx + 0x70]
mov byte [esp + 0x118], 0x3a
call fcn.004304e0
mov ecx, eax
call fcn.00428cf0
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x100], 0x43
call fcn.00422700
lea ecx, [esp + 0x28]
mov byte [esp + 0xfc], 0x3a
call fcn.0042ce80
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0xb8]
cmp eax, ecx
mov byte [esp + 0xfc], 0x2d
je 0x4e2750
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4e2750
sub eax, ecx
cmp eax, 0x80
jbe 0x4e2c26
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e2750
push eax
push ecx
call fcn.005d6970
add esp, 8
jmp 0x4e2750
lea edx, [esp + 0x28]
lea eax, [esp + 0x38]
mov byte [esi + 0x205c], 0
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
push 0x65eac2
push str.silverCountInt
mov ecx, edx
mov byte [esp + 0x104], 0x44
call fcn.00403b50
mov ecx, dword [esi + 0x230]
push ecx
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x104], 0x45
call fcn.0047af70
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x40]
add esp, 8
cmp eax, ecx
mov byte [esp + 0xfc], 0x2d
je 0x4e2cbb
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e2cbb
sub eax, ecx
cmp eax, 0x80
jbe 0x4e2cb1
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e2cbb
push eax
push ecx
call fcn.005d6970
add esp, 8
lea edx, [esp + 0x28]
lea eax, [esp + 0x38]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
push 0x65eab2
push str.goldenCountInt
mov ecx, edx
mov byte [esp + 0x104], 0x46
call fcn.00403b50
mov ecx, dword [esi + 0x234]
push ecx
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x104], 0x47
call fcn.0047af70
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x40]
add esp, 8
cmp eax, ecx
mov byte [esp + 0xfc], 0x2d
je 0x4e2d3a
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e2d3a
sub eax, ecx
cmp eax, 0x80
jbe 0x4e2d30
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e2d3a
push eax
push ecx
call fcn.005d6970
add esp, 8
lea edx, [esp + 0x28]
lea eax, [esp + 0x38]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
push 0x65eaa3
push str.goldenCount
mov ecx, edx
mov byte [esp + 0x104], 0x48
call fcn.00403b50
mov ecx, dword [esi + 0x234]
push ecx
lea edx, [esp + 0xac]
mov bl, 0x49
push edx
mov byte [esp + 0x104], bl
call fcn.004060d0
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
push 0x655d9c
push ecx
mov byte [esp + 0x120], 0x4a
call fcn.00404f30
lea edx, [esp + 0x4c]
add esp, 0xc
push edx
call fcn.0047b0b0
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0xd4]
add esp, 0x1c
cmp eax, ecx
mov byte [esp + 0xfc], bl
je 0x4e2def
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4e2def
sub eax, ecx
cmp eax, 0x80
jbe 0x4e2de5
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e2def
push eax
push ecx
call fcn.005d6970
add esp, 8
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x38]
cmp eax, edx
mov byte [esp + 0xfc], 0x2d
je 0x4e2e29
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e2e29
sub eax, ecx
cmp eax, 0x80
jbe 0x4e2e1f
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e2e29
push eax
push ecx
call fcn.005d6970
add esp, 8
lea eax, [esp + 0x28]
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
push 0x65ea97
push str.silverCount
mov ecx, eax
mov byte [esp + 0x104], 0x4b
call fcn.00403b50
mov edx, dword [esi + 0x230]
push edx
lea eax, [esp + 0xac]
mov bl, 0x4c
push eax
mov byte [esp + 0x104], bl
call fcn.004060d0
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
push 0x655d9c
push ecx
mov byte [esp + 0x120], 0x4d
call fcn.00404f30
lea edx, [esp + 0x4c]
add esp, 0xc
push edx
call fcn.0047b0b0
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0xd4]
add esp, 0x1c
cmp eax, ecx
mov byte [esp + 0xfc], bl
je 0x4e2ede
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x4e2ede
sub eax, ecx
cmp eax, 0x80
jbe 0x4e2ed4
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e2ede
push eax
push ecx
call fcn.005d6970
add esp, 8
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x38]
cmp eax, edx
mov byte [esp + 0xfc], 0x2d
je 0x4e2f18
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e2f18
sub eax, ecx
cmp eax, 0x80
jbe 0x4e2f0e
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e2f18
push eax
push ecx
call fcn.005d6970
add esp, 8
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x38], esp
mov dword [eax], ecx
mov dword [esp + 0x38], ecx
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x11c]
mov ebx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
lea edi, [eax + 0x10]
cmp ebx, edi
mov byte [esp + 0x114], 0x4e
je 0x4e2f4b
mov eax, dword [eax]
push edx
push eax
call fcn.00403b50
mov ecx, esi
mov byte [esp + 0x114], 0x2d
call fcn.0048bc30
fstp dword [esp + 0x24]
lea edi, [esi + 0x1b90]
push str.timeBonus
mov ecx, edi
call fcn.004ab9a0
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
push 0
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x3c], esp
mov dword [eax], ecx
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0x14], eax
push 0x65aa4b
push str.ScoreBonusK
mov byte [esp + 0x120], 0x4f
call fcn.00403b50
mov byte [esp + 0x118], 0x2d
call fcn.00450820
fstp dword [esp + 0x40]
add esp, 0x1c
push str.levelScoreBonusMul
mov ecx, edi
call fcn.004ab9a0
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
mov dword [eax], edx
mov eax, dword [esi + 0x234]
test eax, eax
jle 0x4e3032
lea eax, [esp + 0x28]
lea ecx, [esp + 0x38]
or ebx, 0x20
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
push 0x65ea6b
push str.double_hint
mov ecx, eax
mov byte [esp + 0x104], 0x50
call fcn.00403b50
lea edx, [esp + 0x28]
push 0
or ebx, 0x40
push edx
mov byte [esp + 0x104], 0x51
mov dword [esp + 0x1c], ebx
call fcn.0047b4e0
add esp, 8
test al, al
mov byte [esp + 0x13], 1
je 0x4e3037
mov byte [esp + 0x13], 0
test bl, 0x40
mov dword [esp + 0xfc], 0x2d
je 0x4e3080
mov eax, dword [esp + 0x3c]
and ebx, 0xffffffbf
lea ecx, [esp + 0x38]
cmp eax, ecx
mov dword [esp + 0x14], ebx
je 0x4e3080
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e3080
sub eax, ecx
cmp eax, 0x80
jbe 0x4e3076
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e3080
push eax
push ecx
call fcn.005d6970
add esp, 8
test bl, 0x20
je 0x4e308c
and ebx, 0xffffffdf
mov dword [esp + 0x14], ebx
mov al, byte [esp + 0x13]
test al, al
je 0x4e3106
push 0x40800000
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x3c], esp
mov dword [esp + 0x38], ecx
mov dword [ecx + 0x14], eax
push 0x65ea6b
push str.double_hint
mov byte [esp + 0x120], 0x52
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x50], esp
mov dword [eax], ecx
mov dword [esp + 0x50], ecx
mov dword [ecx + 0x14], eax
push 0x65ea5d
push str.GameField
mov byte [esp + 0x138], 0x54
call fcn.00403b50
mov edi, dword [esp + 0x74]
mov ecx, edi
mov byte [esp + 0x130], 0x2d
call fcn.0049f1f0
jmp 0x4e310a
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
cmp ebp, 1
jne 0x4e316c
lea edx, [esp + 0x28]
lea eax, [esp + 0x38]
or ebx, 0x80
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
push 0x65ea51
push str.lock_hint
mov ecx, edx
mov byte [esp + 0x104], 0x55
call fcn.00403b50
lea ecx, [esp + 0x28]
push 0
or ebx, 0x100
push ecx
mov byte [esp + 0x104], 0x56
mov dword [esp + 0x1c], ebx
call fcn.0047b4e0
add esp, 8
test al, al
mov byte [esp + 0x13], 1
je 0x4e3171
mov byte [esp + 0x13], 0
test bh, 1
mov dword [esp + 0xfc], 0x2d
je 0x4e31bd
mov eax, dword [esp + 0x3c]
and ebx, 0xfffffeff
lea edx, [esp + 0x38]
cmp eax, edx
mov dword [esp + 0x14], ebx
je 0x4e31bd
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e31bd
sub eax, ecx
cmp eax, 0x80
jbe 0x4e31b3
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e31bd
push eax
push ecx
call fcn.005d6970
add esp, 8
test bl, bl
jns 0x4e31cb
and ebx, 0xffffff7f
mov dword [esp + 0x14], ebx
mov al, byte [esp + 0x13]
test al, al
je 0x4e3226
push 0x40800000
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x3c], esp
mov dword [esp + 0x38], ecx
mov dword [ecx + 0x14], eax
push 0x65ea51
push str.lock_hint
mov byte [esp + 0x120], 0x57
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x50], esp
mov dword [eax], ecx
mov dword [esp + 0x50], ecx
mov dword [ecx + 0x14], eax
mov byte [esp + 0x130], 0x59
jmp 0x4e333a
cmp ebp, 2
jne 0x4e3284
lea eax, [esp + 0x28]
lea ecx, [esp + 0x38]
or ebx, 0x200
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
push 0x65ea44
push str.double_lock_hint
mov ecx, eax
mov byte [esp + 0x104], 0x5a
call fcn.00403b50
lea edx, [esp + 0x28]
push 0
or ebx, 0x400
push edx
mov byte [esp + 0x104], 0x5b
mov dword [esp + 0x1c], ebx
call fcn.0047b4e0
add esp, 8
test al, al
mov byte [esp + 0x13], 1
je 0x4e3289
mov byte [esp + 0x13], 0
test bh, 4
mov dword [esp + 0xfc], 0x2d
je 0x4e32d5
mov eax, dword [esp + 0x3c]
and ebx, 0xfffffbff
lea ecx, [esp + 0x38]
cmp eax, ecx
mov dword [esp + 0x14], ebx
je 0x4e32d5
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e32d5
sub eax, ecx
cmp eax, 0x80
jbe 0x4e32cb
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e32d5
push eax
push ecx
call fcn.005d6970
add esp, 8
test bh, 2
je 0x4e32e4
and ebx, 0xfffffdff
mov dword [esp + 0x14], ebx
mov al, byte [esp + 0x13]
test al, al
je 0x4e3358
push 0x40800000
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x3c], esp
mov dword [esp + 0x38], ecx
mov dword [ecx + 0x14], eax
push 0x65ea44
push str.double_lock_hint
mov byte [esp + 0x120], 0x5c
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x50], esp
mov dword [eax], ecx
mov dword [esp + 0x50], ecx
mov dword [ecx + 0x14], eax
mov byte [esp + 0x130], 0x5e
push 0x65ea5d
push str.GameField
call fcn.00403b50
mov ecx, edi
mov byte [esp + 0x130], 0x2d
call fcn.0049f1f0
mov ecx, esi
mov byte [esi + 0x1b28], 0
mov byte [esi + 0x1b0c], 0
call fcn.004b6160
mov byte [esi + 0x1b0c], al
lea edx, [esp + 0x28]
lea eax, [esp + 0x38]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
push 0x659f73
push str.LevelNumber
mov ecx, edx
mov byte [esp + 0x104], 0x5f
call fcn.00403b50
lea ecx, [esp + 0x28]
push 1
push ecx
mov byte [esp + 0x104], 0x60
call fcn.0047b440
add esp, 8
mov ebx, eax
mov eax, dword [esp + 0x3c]
dec ebx
neg ebx
sbb bl, bl
lea edx, [esp + 0x38]
inc bl
cmp eax, edx
mov byte [esp + 0xfc], 0x2d
je 0x4e33f6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e33f6
sub eax, ecx
cmp eax, 0x80
jbe 0x4e33ec
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e33f6
push eax
push ecx
call fcn.005d6970
add esp, 8
test bl, bl
je 0x4e3408
mov eax, dword [esi + 0xc0]
mov dword [esi + 0x1b24], eax
jmp 0x4e3412
mov dword [esi + 0x1b24], 0
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x60]
lea edx, [esp + 0x70]
or edi, 0x800
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
push 0x659f73
push str.LevelNumber
mov byte [esp + 0x104], 0x61
call fcn.00403b50
lea eax, [esp + 0x60]
or edi, 0x1000
push eax
mov byte [esp + 0x100], 0x62
mov dword [esp + 0x18], edi
call fcn.0047b1b0
add esp, 4
cmp eax, 2
jne 0x4e34c7
or edi, 0x2000
lea ecx, [esp + 0x28]
lea edx, [esp + 0x38]
mov dword [esp + 0x14], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
push 0x65ea32
push str.timer_hint
mov dword [esp + 0x104], 0x63
call fcn.00403b50
lea eax, [esp + 0x28]
push 0
or edi, 0x4000
push eax
mov dword [esp + 0x104], 0x64
mov dword [esp + 0x1c], edi
call fcn.0047b4e0
add esp, 8
test al, al
jne 0x4e34c7
mov bl, 1
jmp 0x4e34c9
xor bl, bl
test edi, 0x4000
mov dword [esp + 0xfc], 0x62
je 0x4e3518
mov eax, dword [esp + 0x3c]
and edi, 0xffffbfff
lea ecx, [esp + 0x38]
cmp eax, ecx
mov dword [esp + 0x14], edi
je 0x4e3518
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e3518
sub eax, ecx
cmp eax, 0x80
jbe 0x4e350e
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e3518
push eax
push ecx
call fcn.005d6970
add esp, 8
test edi, 0x2000
je 0x4e3526
and edi, 0xffffdfff
test edi, 0x1000
mov ebp, 0x2d
mov dword [esp + 0xfc], ebp
je 0x4e3572
mov eax, dword [esp + 0x74]
lea edx, [esp + 0x70]
and edi, 0xffffefff
cmp eax, edx
je 0x4e3572
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x4e3572
sub eax, ecx
cmp eax, 0x80
jbe 0x4e3568
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e3572
push eax
push ecx
call fcn.005d6970
add esp, 8
test edi, 0x800
je 0x4e3580
and edi, 0xfffff7ff
test bl, bl
je 0x4e35f9
push 0x40900000
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x3c], esp
mov dword [esp + 0x38], ecx
mov dword [ecx + 0x14], eax
push 0x65ea32
push str.timer_hint
mov byte [esp + 0x120], 0x65
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x50], esp
mov dword [eax], ecx
mov dword [esp + 0x50], ecx
mov dword [ecx + 0x14], eax
push 0x65ea5d
push str.GameField
mov byte [esp + 0x138], 0x67
call fcn.00403b50
mov ebx, dword [esp + 0x74]
mov ecx, ebx
mov byte [esp + 0x130], 0x2d
call fcn.0049f1f0
jmp 0x4e37a8
lea eax, [esp + 0x60]
lea ecx, [esp + 0x70]
or edi, 0x8000
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
push 0x659f73
push str.LevelNumber
mov ecx, eax
mov byte [esp + 0x104], 0x68
call fcn.00403b50
lea edx, [esp + 0x60]
or edi, 0x10000
push edx
mov byte [esp + 0x100], 0x69
mov dword [esp + 0x18], edi
call fcn.0047b1b0
add esp, 4
cmp eax, 3
jne 0x4e36ae
or edi, 0x20000
lea eax, [esp + 0x28]
lea ecx, [esp + 0x38]
mov dword [esp + 0x14], edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
push 0x65ea24
push str.eye_hint
mov ecx, eax
mov dword [esp + 0x104], 0x6a
call fcn.00403b50
lea edx, [esp + 0x28]
push 0
or edi, 0x40000
push edx
mov dword [esp + 0x104], 0x6b
mov dword [esp + 0x1c], edi
call fcn.0047b4e0
add esp, 8
test al, al
jne 0x4e36ae
mov bl, 1
jmp 0x4e36b0
xor bl, bl
test edi, 0x40000
mov dword [esp + 0xfc], 0x69
je 0x4e36ff
mov eax, dword [esp + 0x3c]
and edi, 0xfffbffff
lea ecx, [esp + 0x38]
cmp eax, ecx
mov dword [esp + 0x14], edi
je 0x4e36ff
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4e36ff
sub eax, ecx
cmp eax, 0x80
jbe 0x4e36f5
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e36ff
push eax
push ecx
call fcn.005d6970
add esp, 8
test edi, 0x20000
je 0x4e370d
and edi, 0xfffdffff
test edi, 0x10000
mov dword [esp + 0xfc], ebp
je 0x4e374e
mov eax, dword [esp + 0x74]
lea edx, [esp + 0x70]
cmp eax, edx
je 0x4e374e
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x4e374e
sub eax, ecx
cmp eax, 0x80
jbe 0x4e3744
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e374e
push eax
push ecx
call fcn.005d6970
add esp, 8
test bl, bl
je 0x4e37a4
push 0x40900000
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x3c], esp
lea eax, [esp + 0x2f]
push eax
push str.eye_hint
call fcn.00403db0
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x50], esp
lea edx, [esp + 0x47]
push edx
push str.GameField
mov byte [esp + 0x138], 0x6c
call fcn.00403db0
mov ebx, dword [esp + 0x74]
mov ecx, ebx
mov byte [esp + 0x130], 0x2d
call fcn.0049f1f0
jmp 0x4e37a8
mov ebx, dword [esp + 0x40]
mov edi, dword [esi + 0xf4]
mov eax, dword [esi + 0x1b04]
imul eax, edi
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esi + 0x1b00]
imul eax, edi
mov edi, dword [esi + 0x1b88]
cdq
sub eax, edx
mov edx, dword [esi + 0x1b84]
sar ecx, 1
sar eax, 1
sub edi, ecx
sub edx, eax
mov ecx, esi
mov dword [esi + 0x14], edx
mov dword [esi + 0x18], edi
call fcn.00497e70
mov eax, dword [esi + 0x1ba8]
mov dword [esi + 0x1bac], eax
mov al, byte [esi + 0x1b0c]
test al, al
jne 0x4e380a
push 1
push 0
mov ecx, esi
call fcn.004b6840
mov ecx, dword [esi + 0x1be4]
mov edx, dword [ecx + 4]
mov eax, dword [edx + esi + 0x1be4]
test eax, eax
lea ecx, [edx + esi + 0x1be4]
je 0x4e382a
call fcn.0048ea80
mov eax, dword [esi + 0x234]
push 0
sub esp, 0x18
test eax, eax
mov dword [esp + 0x3c], esp
mov ecx, esp
jle 0x4e3858
lea eax, [esp + 0x2f]
push eax
push str.Both
call fcn.00403db0
mov byte [esp + 0x118], 0x6e
jmp 0x4e386f
lea edx, [esp + 0x2f]
push edx
push str.Silver_only
call fcn.00403db0
mov byte [esp + 0x118], 0x6f
sub esp, 0x18
add esi, 0x1d0
mov dword [esp + 0x50], esp
mov ecx, esp
push esi
call fcn.00403e10
mov ecx, ebx
mov byte [esp + 0x130], 0x2d
call fcn.0049f1f0
lea ecx, [esp + 0x54]
mov byte [esp + 0xfc], 0x23
call fcn.0042ce80
lea ecx, [esp + 0x78]
mov byte [esp + 0xfc], 0x21
call fcn.0042ce80
lea ecx, [esp + 0x84]
mov byte [esp + 0xfc], 0x1e
call fcn.0042ce80
mov eax, dword [esp + 0xd4]
lea ecx, [esp + 0xd0]
cmp eax, ecx
mov byte [esp + 0xfc], 3
je 0x4e390c
mov ecx, dword [esp + 0xc0]
test ecx, ecx
je 0x4e390c
sub eax, ecx
cmp eax, 0x80
jbe 0x4e3902
push ecx
call fcn.00611869
add esp, 4
jmp 0x4e390c
push eax
push ecx
call fcn.005d6970
add esp, 8
lea ecx, [esp + 0x48]
mov byte [esp + 0xfc], 2
call fcn.0042ce80
lea ecx, [esp + 0x90]
mov byte [esp + 0xfc], 1
call fcn.0042ce80
lea ecx, [esp + 0x9c]
mov dword [esp + 0xfc], 0xffffffff
call fcn.0041fff0
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xf0]
mov al, 1
call fcn.006122a5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret 4