Function at 0x4679e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x85136d
mov eax, dword fs:[0]
push eax
sub esp, 0x390
mov eax, dword [0x8943b8]
xor eax, esp
mov dword [esp + 0x38c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x8943b8]
xor eax, esp
push eax
lea eax, [esp + 0x3a4]
mov dword fs:[0], eax
mov ecx, dword [esp + 0x3c0]
mov eax, dword [esp + 0x3bc]
mov ebp, dword [esp + 0x3b4]
mov edi, dword [esp + 0x3c4]
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x6c], eax
call fcn.00414cd0
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push ebp
push ebp
lea edx, [esp + 0x2a4]
push str.data_character__s__s.pat
push edx
mov dword [esp + 0x3bc], 0
call ebx
add esp, 0x10
lea eax, [esp + 0x29c]
push eax
lea ecx, [esp + 0x18]
call fcn.0040d1e0
test al, al
je 0x468992
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 1
lea eax, [esp + 0x2b]
push eax
call edx
mov eax, dword [edi + 4]
test eax, eax
jne 0x467aaa
xor esi, esi
jmp 0x467ab2
mov esi, dword [edi + 8]
sub esi, eax
sar esi, 2
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x58], esi
call eax
movsx ecx, word [esp + 0x28]
xor eax, eax
add ecx, esi
push eax
push ecx
mov ecx, edi
call fcn.004667d0
movsx esi, byte [esp + 0x3b8]
push esi
push ebp
lea edx, [esp + 0x120]
push str.data_character__s_palette_03d.bmp
push edx
call ebx
push 0x12
call fcn.0043f3f0
add esp, 0x14
mov ecx, ebp
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x467b20
test dl, dl
je 0x467b1c
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x467b20
add ecx, 2
add eax, 2
test dl, dl
jne 0x467b00
xor eax, eax
jmp 0x467b25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x467b69
push str.configex123.ini
mov ecx, 0x8a0d08
call fcn.0040f2d0
test al, al
je 0x467b69
push str.limit
push 0x85a2e4
mov ecx, 0x8a0d08
call fcn.0040f320
cmp eax, 1
jne 0x467b69
push esi
push ebp
lea eax, [esp + 0x120]
push str.data_character__s_palette_03db.bmp
push eax
call ebx
add esp, 0x10
push 0x10
push 0x896b88
lea ecx, [esp + 0x120]
push ecx
mov ecx, 0x8a0048
call fcn.00408be0
xor ebx, ebx
cmp word [esp + 0x28], bx
jle 0x467c63
mov edx, dword [esp + 0x50]
lea eax, [edx*4]
mov dword [esp + 0x48], eax
mov edi, edi
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 0x80
lea eax, [esp + 0x11c]
push eax
call edx
lea eax, [esp + 0x118]
push eax
push ebp
lea ecx, [esp + 0x1a0]
push str.data_character__s__s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [edi + 4]
add esp, 0x10
test esi, esi
je 0x467e2f
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x50]
mov eax, ecx
sub eax, esi
sar eax, 2
add edx, ebx
cmp eax, edx
jbe 0x467e2f
cmp esi, ecx
jbe 0x467c03
call fcn.0081ff70
mov eax, dword [esp + 0x48]
mov dword [esp + 0x68], esi
add esi, eax
cmp esi, dword [edi + 8]
ja 0x467c17
cmp esi, dword [edi + 4]
jae 0x467c20
call fcn.0081ff70
mov ebp, dword [esp + 0x4c]
cmp esi, dword [edi + 8]
jb 0x467c2a
call fcn.0081ff70
push 0
push 0
lea ecx, [esp + 0x1a0]
push ecx
lea edx, [esp + 0x8c]
push edx
mov ecx, 0x89ff08
call fcn.00405030
mov eax, dword [eax]
add dword [esp + 0x48], 4
mov dword [esi], eax
movsx ecx, word [esp + 0x28]
add ebx, 1
cmp ebx, ecx
jl 0x467ba0
xor ebx, ebx
lea ecx, [esp + 0x3c]
call fcn.00609410
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ac], 1
call fcn.00609410
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 4
lea eax, [esp + 0x80]
push eax
mov byte [esp + 0x3b4], 2
call edx
cmp dword [esp + 0x7c], ebx
mov dword [esp + 0x4c], ebx
jle 0x4687dd
jmp 0x467cc0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 4
lea edx, [esp + 0x60]
push edx
call eax
mov eax, dword [esp + 0x5c]
cmp eax, 0xfffffffe
je 0x467ec5
cmp eax, 0xffffffff
je 0x467e34
mov ebp, dword [esp + 0x6c]
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x74]
push edx
mov ecx, ebp
call fcn.0043f2f0
mov esi, dword [esp + 0x70]
test esi, esi
mov edi, dword [ebp + 4]
je 0x467d0c
cmp esi, ebp
je 0x467d11
call fcn.0081ff70
mov eax, dword [esp + 0x74]
cmp eax, edi
je 0x467d2a
push eax
push esi
lea eax, [esp + 0xf0]
push eax
mov ecx, ebp
call fcn.00439e00
lea ecx, [esp + 0xf8]
call fcn.004673b0
mov ebx, eax
mov edi, dword [esp + 0x84]
mov ecx, dword [edi + 0x10]
add ecx, 1
cmp dword [edi + 8], ecx
mov byte [esp + 0x3ac], 5
ja 0x467d5b
push 1
mov ecx, edi
call fcn.004659f0
mov esi, dword [edi + 0x10]
add esi, dword [edi + 0xc]
mov eax, dword [edi + 8]
cmp eax, esi
ja 0x467d6a
sub esi, eax
mov edx, dword [edi + 4]
cmp dword [edx + esi*4], 0
jne 0x467d83
push 0x20
call fcn.0081fbdc
mov ecx, dword [edi + 4]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [edi + 4]
mov esi, dword [edx + esi*4]
push ebx
push esi
call fcn.00467800
add dword [edi + 0x10], 1
add esp, 8
lea ecx, [esp + 0xf8]
mov byte [esp + 0x3ac], 2
call fcn.00467420
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 0x10]
add esi, eax
cmp eax, esi
jbe 0x467dbc
call fcn.0081ff70
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
add esi, 0xffffffff
add ecx, eax
cmp esi, ecx
ja 0x467dcf
cmp esi, eax
jae 0x467dd4
call fcn.0081ff70
mov edx, dword [edi + 0x10]
add edx, dword [edi + 0xc]
cmp esi, edx
jb 0x467de3
call fcn.0081ff70
mov eax, dword [edi + 8]
cmp eax, esi
ja 0x467dec
sub esi, eax
mov eax, dword [edi + 4]
mov esi, dword [eax + esi*4]
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], esi
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0xe0]
mov dword [esp + 0x68], ecx
push eax
mov ecx, ebp
mov dword [esp + 0x80], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0x70], esi
call fcn.00457be0
jmp 0x46802f
jmp fcn.0040c660
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 4
lea eax, [esp + 0x8c]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 4
lea edx, [esp + 0x90]
push edx
call eax
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 4]
lea edi, [eax + 4]
lea ecx, [esp + 0x88]
push ecx
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.006fb680
push 1
lea ecx, [esp + 0x40]
mov esi, eax
call fcn.0047d030
mov dword [edi], esi
mov eax, dword [esi + 4]
mov dword [eax], esi
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 4]
lea edi, [eax + 4]
lea ecx, [esp + 0x8c]
push ecx
push edx
push eax
lea ecx, [esp + 0x3c]
call fcn.006fb680
push 1
lea ecx, [esp + 0x34]
mov esi, eax
call fcn.0047d030
mov dword [edi], esi
mov eax, dword [esi + 4]
mov dword [eax], esi
jmp 0x4687c8
mov esi, dword [esp + 0x84]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
add edi, eax
cmp eax, edi
jbe 0x467edd
call fcn.0081ff70
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
add edi, 0xffffffff
add ecx, eax
cmp edi, ecx
ja 0x467ef0
cmp edi, eax
jae 0x467ef5
call fcn.0081ff70
mov edx, dword [esi + 0x10]
add edx, dword [esi + 0xc]
cmp edi, edx
jb 0x467f04
call fcn.0081ff70
mov eax, dword [esi + 8]
cmp eax, edi
ja 0x467f0d
sub edi, eax
mov eax, dword [esi + 4]
mov ebx, dword [eax + edi*4]
xor ebp, ebp
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], ebp
xor ecx, ecx
push ecx
lea eax, [esp + 0xa0]
push eax
xor edi, edi
push edi
mov edx, eax
push edx
lea ecx, [esp + 0x100]
push ecx
mov ecx, eax
mov byte [esp + 0x3c0], 3
call fcn.004671b0
mov word [esp + 0xac], bp
mov word [esp + 0xae], bp
mov edx, dword [esi + 0x10]
add edx, 1
cmp dword [esi + 8], edx
mov byte [esp + 0x3ac], 4
ja 0x467f7e
push 1
mov ecx, esi
call fcn.004659f0
mov edi, dword [esi + 0x10]
add edi, dword [esi + 0xc]
mov eax, dword [esi + 8]
cmp eax, edi
ja 0x467f8d
sub edi, eax
mov eax, dword [esi + 4]
cmp dword [eax + edi*4], ebp
jne 0x467fa5
push 0x20
call fcn.0081fbdc
mov ecx, dword [esi + 4]
add esp, 4
mov dword [ecx + edi*4], eax
mov edx, dword [esi + 4]
mov edi, dword [edx + edi*4]
lea eax, [esp + 0x9c]
push eax
push edi
call fcn.00467800
add dword [esi + 0x10], 1
add esp, 8
lea ecx, [esp + 0x9c]
mov byte [esp + 0x3ac], 2
call fcn.00467420
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
add edi, eax
cmp eax, edi
jbe 0x467fe5
call fcn.0081ff70
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
add edi, 0xffffffff
add ecx, eax
cmp edi, ecx
ja 0x467ff8
cmp edi, eax
jae 0x467ffd
call fcn.0081ff70
mov edx, dword [esi + 0x10]
add edx, dword [esi + 0xc]
cmp edi, edx
jb 0x46800c
call fcn.0081ff70
mov eax, dword [esi + 8]
cmp eax, edi
ja 0x468015
sub edi, eax
mov eax, dword [esi + 4]
mov esi, dword [eax + edi*4]
mov ecx, dword [esp + 0x94]
mov dword [ebx + 0x1c], esi
mov dword [esp + 0x78], esi
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
lea eax, [esi + 0x10]
push 2
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
lea eax, [esi + 0x12]
push 2
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
lea eax, [esi + 0x14]
push 1
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 4
lea eax, [esp + 0x64]
push eax
call edx
lea ecx, [esp + 0x198]
call fcn.00466e20
push eax
mov eax, dword [esp + 0x64]
push eax
mov ecx, esi
mov byte [esp + 0x3b4], 6
call fcn.00467880
lea ecx, [esp + 0x198]
mov byte [esp + 0x3ac], 2
call fcn.00465770
cmp dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
jle 0x4687c8
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x54], eax
lea esp, [esp]
mov esi, dword [esp + 0x78]
mov eax, dword [esi + 4]
test eax, eax
je 0x4680f7
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x30c30c31
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x58], eax
jb 0x4680fc
call fcn.0081ff70
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov esi, dword [esi + 4]
mov edx, dword [edx + 4]
add esi, dword [esp + 0x54]
push 4
lea eax, [esp + 0x9c]
push eax
call edx
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x50]
add eax, ecx
mov word [esi + 0xa], ax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0xc]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 0xe]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x10]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 0x12]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 4]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 6]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 8]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
lea edi, [esi + 0x14]
push edi
call edx
cmp byte [edi], 2
jne 0x468366
push 0x1c
call fcn.0081fbdc
mov dword [esi + 0x18], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
add esp, 4
push 2
lea edx, [esp + 0x4c]
push edx
call eax
movsx eax, word [esp + 0x48]
sub eax, 0
je 0x468203
sub eax, 1
je 0x4681f8
sub eax, 1
jne 0x46820c
mov ecx, dword [esi + 0x18]
mov dword [ecx], 3
jmp 0x46820c
mov edx, dword [esi + 0x18]
mov dword [edx], 2
jmp 0x46820c
mov eax, dword [esi + 0x18]
mov dword [eax], 1
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
add eax, 7
push 1
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
add eax, 6
push 1
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
add eax, 5
push 1
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
add eax, 4
push 1
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x27], 5
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esp + 0x20]
push eax
jl 0x4682cb
call edx
movsx eax, word [esp + 0x1c]
mov dword [esp + 0x20], eax
mov ecx, dword [esi + 0x18]
push 2
fild dword [esp + 0x24]
lea eax, [esp + 0x20]
push eax
fdiv qword [0x857b20]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [ecx + 8]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
call edx
movsx eax, word [esp + 0x1c]
mov dword [esp + 0x20], eax
mov ecx, dword [esi + 0x18]
fild dword [esp + 0x20]
fdiv qword [0x857b20]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [ecx + 0xc]
jmp 0x4682f7
call edx
movsx eax, word [esp + 0x1c]
mov dword [esp + 0x20], eax
mov ecx, dword [esi + 0x18]
fild dword [esp + 0x20]
fdiv qword [0x857b20]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [ecx + 8]
mov eax, dword [esi + 0x18]
fld dword [eax + 8]
fstp dword [eax + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esp + 0x20]
push eax
call edx
movsx eax, word [esp + 0x1c]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x20], eax
push 2
lea eax, [esp + 0x20]
fild dword [esp + 0x24]
push eax
fstp dword [ecx + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
call edx
movsx eax, word [esp + 0x1c]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x20], eax
push 2
lea eax, [esp + 0x20]
fild dword [esp + 0x24]
push eax
fstp dword [ecx + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
call edx
movsx eax, word [esp + 0x1c]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fstp dword [ecx + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x1c]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 0x1e]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x20]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 0x22]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x24]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 0x26]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x28]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 0x2a]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x2c]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 0x2e]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x30]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
push 2
lea edx, [esi + 0x32]
mov eax, dword [eax + 4]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x34]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 0x36]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x38]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esp + 0x20]
push edx
call eax
movsx ecx, word [esp + 0x1c]
mov dword [esp + 0x20], ecx
push 2
lea eax, [esp + 0x20]
fild dword [esp + 0x24]
push eax
fdiv qword [0x857b20]
fstp dword [esi + 0x3c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
call edx
movsx eax, word [esp + 0x1c]
mov dword [esp + 0x20], eax
push 2
lea eax, [esi + 0x44]
fild dword [esp + 0x24]
push eax
fdiv qword [0x857b20]
fstp dword [esi + 0x40]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 2
lea edx, [esi + 0x46]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 2
lea eax, [esi + 0x48]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 1
lea edx, [esi + 0x49]
push edx
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
lea eax, [esi + 0x4c]
push 4
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 4
lea eax, [esi + 0x50]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push 1
lea edx, [esp + 0x1f]
push edx
call eax
cmp byte [esp + 0x1b], 0
je 0x46854f
push 0x10
call fcn.0081fbdc
mov dword [esi + 0x54], eax
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
add esp, 4
push 0x10
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 1
lea eax, [esp + 0x1f]
push eax
call edx
xor eax, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
movsx eax, byte [esp + 0x1b]
lea ecx, [esp + 0xbc]
push ecx
lea ebx, [esi + 0x58]
push eax
mov ecx, ebx
call fcn.004669d0
xor edi, edi
cmp byte [esp + 0x1b], 0
jle 0x4685dc
xor ebp, ebp
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4685b5
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 4
cmp edi, eax
jb 0x4685ba
call fcn.0081ff70
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
add eax, ebp
push 0x10
push eax
mov eax, dword [edx + 4]
call eax
movsx ecx, byte [esp + 0x1b]
add edi, 1
add ebp, 0x10
cmp edi, ecx
jl 0x4685a2
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 1
lea eax, [esp + 0x1f]
push eax
call edx
xor eax, eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
movsx eax, byte [esp + 0x1b]
lea edx, [esp + 0xcc]
push edx
lea ecx, [esi + 0x68]
push eax
call fcn.004669d0
movsx eax, byte [esp + 0x1b]
mov ebp, dword [esi + 0x80]
cmp dword [esi + 0x7c], ebp
lea edi, [esi + 0x78]
mov dword [esp + 0x80], eax
jbe 0x468641
call fcn.0081ff70
mov ebx, dword [edi + 4]
cmp ebx, dword [edi + 8]
jbe 0x46864e
call fcn.0081ff70
cmp ebx, ebp
je 0x46867f
mov eax, dword [edi + 8]
sub eax, ebp
sar eax, 2
test eax, eax
lea ecx, [eax*4]
lea edx, [ebx + ecx]
mov dword [esp + 0x20], edx
jle 0x468678
push ecx
push ebp
push ecx
push ebx
call fcn.0081fcc1
add esp, 0x10
mov eax, dword [esp + 0x20]
mov dword [edi + 8], eax
mov ebx, dword [edi + 4]
cmp ebx, dword [edi + 8]
jbe 0x46868c
call fcn.0081ff70
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x90]
push ecx
push edx
push ebx
push edi
mov ecx, edi
call fcn.0044a740
xor ebp, ebp
cmp byte [esp + 0x1b], 0
jle 0x468767
mov dword [esp + 0x20], ebp
mov ecx, dword [esi + 0x6c]
test ecx, ecx
je 0x4686c9
mov eax, dword [esi + 0x70]
sub eax, ecx
sar eax, 4
cmp ebp, eax
jb 0x4686ce
call fcn.0081ff70
mov eax, dword [esi + 0x6c]
add eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push 0x10
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 1
lea eax, [esp + 0x33]
push eax
call edx
cmp byte [esp + 0x2f], 0
je 0x468752
push 0x10
call fcn.0081fbdc
mov ecx, dword [edi + 4]
add esp, 4
test ecx, ecx
mov ebx, eax
je 0x46871b
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x468720
call fcn.0081ff70
mov eax, dword [edi + 4]
mov dword [eax + ebp*4], ebx
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x468739
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 2
cmp ebp, eax
jb 0x46873e
call fcn.0081ff70
mov ecx, dword [edi + 4]
mov eax, dword [ecx + ebp*4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push 0x10
push eax
mov eax, dword [edx + 4]
call eax
movsx ecx, byte [esp + 0x1b]
add dword [esp + 0x20], 0x10
add ebp, 1
cmp ebp, ecx
jl 0x4686b6
test dword [esi + 0x4c], 0x1000000
je 0x46877c
lea eax, [esi + 0x68]
push eax
lea ecx, [esi + 0x58]
call fcn.00466890
cmp byte [esp + 0x27], 4
jl 0x4687ab
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 0x18
lea eax, [esi + 0x88]
push eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 6
add esi, 0xa0
push esi
call edx
mov eax, dword [esp + 0x58]
add dword [esp + 0x54], 0xa8
add eax, 1
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x58], eax
jl 0x4680d0
mov eax, dword [esp + 0x4c]
add eax, 1
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x4c], eax
jl 0x467cc0
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x34]
je 0x468914
mov ebp, dword [esp + 0x6c]
mov esi, dword [ecx + 4]
cmp esi, ecx
jne 0x468807
call fcn.0081ff70
cmp esi, dword [esp + 0x34]
jne 0x468807
call fcn.0081ff70
add esi, 8
push esi
lea eax, [esp + 0x68]
push eax
mov ecx, ebp
call fcn.0043f2f0
mov esi, dword [esp + 0x64]
test esi, esi
mov ebx, dword [ebp + 4]
je 0x468826
cmp esi, ebp
je 0x46882b
call fcn.0081ff70
mov edi, dword [esp + 0x68]
cmp edi, ebx
je 0x468883
test esi, esi
jne 0x46883c
call fcn.0081ff70
cmp edi, dword [esi + 4]
jne 0x468846
call fcn.0081ff70
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 4]
cmp esi, eax
jne 0x468861
call fcn.0081ff70
cmp esi, dword [esp + 0x40]
jne 0x468861
call fcn.0081ff70
mov ecx, dword [edi + 0x10]
mov eax, dword [esi + 8]
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0xe0]
push edx
mov ecx, ebp
mov dword [esp + 0x78], eax
call fcn.00457be0
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 4]
cmp esi, eax
jne 0x4688a6
call fcn.0081ff70
mov eax, dword [esp + 0x40]
cmp esi, eax
jne 0x4688a6
call fcn.0081ff70
cmp esi, dword [esp + 0x40]
je 0x4688c3
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [eax], ecx
mov edx, dword [esi]
mov eax, dword [esi + 4]
push esi
mov dword [edx + 4], eax
call fcn.0081f6fa
add esp, 4
sub dword [esp + 0x44], 1
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 4]
cmp esi, eax
jne 0x4688e8
call fcn.0081ff70
mov eax, dword [esp + 0x34]
cmp esi, eax
jne 0x4688e8
call fcn.0081ff70
mov ecx, dword [esp + 0x34]
cmp esi, ecx
je 0x468909
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [eax], ecx
mov edx, dword [esi]
mov eax, dword [esi + 4]
push esi
mov dword [edx + 4], eax
call fcn.0081f6fa
mov ecx, dword [esp + 0x38]
add esp, 4
sub dword [esp + 0x38], 1
cmp dword [esp + 0x38], 0
jne 0x4687f0
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x34]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x34]
xor edi, edi
cmp eax, ecx
mov dword [esp + 0x38], edi
je 0x468945
lea ecx, [ecx]
mov esi, dword [eax]
push eax
call fcn.0081f6fa
mov ecx, dword [esp + 0x38]
add esp, 4
cmp esi, ecx
mov eax, esi
jne 0x468930
push ecx
call fcn.0081f6fa
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x38], edi
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x44]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x44], edi
je 0x468985
lea ecx, [ecx]
mov esi, dword [eax]
push eax
call fcn.0081f6fa
mov ecx, dword [esp + 0x44]
add esp, 4
cmp esi, ecx
mov eax, esi
jne 0x468970
push ecx
call fcn.0081f6fa
add esp, 4
mov dword [esp + 0x40], edi
lea ecx, [esp + 0x14]
mov dword [esp + 0x3ac], 0xffffffff
call fcn.0040d1c0
mov ecx, dword [esp + 0x3a4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x38c]
xor ecx, esp
call fcn.0081fb35
add esp, 0x39c
ret