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

Disassembly:
sub esp, 0xe0
mov edx, dword [ecx + 0xca0]
xor eax, eax
cmp edx, eax
mov dword [esp + 0xc], ecx
je 0x461f0f
add esp, 0xe0
ret 0x20
mov edx, 6
push ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xfc]
push ebp
push esi
cmp edx, eax
push edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
je 0x461f70
push edx
lea ecx, [esp + 0x44]
call fcn.00454490
mov eax, dword [esp + 0xf4]
lea ecx, [esp + 0x54]
push eax
call fcn.00454490
mov edi, 1
jmp 0x4620e0
mov ebp, dword [esp + 0xfc]
mov edx, dword [ebp]
cmp edx, eax
je 0x461f83
mov edx, dword [edx + 4]
jmp 0x461f85
xor edx, edx
cmp byte [edx], 0
jne 0x461fae
mov ecx, dword [esp + 0xf4]
push ecx
lea ecx, [esp + 0x44]
call fcn.00454490
lea ecx, [esp + 0x54]
call fcn.00454270
mov edi, 1
jmp 0x4620e0
cmp dword [esp + 0xf4], eax
je 0x4620be
mov edi, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x34]
mov edx, dword [edi + 0x1108]
push edx
call fcn.0043e830
mov esi, dword [esp + 0x104]
mov ebx, dword [esp + 0x10c]
neg esi
sbb esi, esi
mov edx, dword [esp + 0xf4]
not esi
lea eax, [esp + 0x64]
lea ecx, [esp + 0x40]
and esi, eax
push esi
push ebx
push ecx
push ebp
push edx
mov ecx, edi
call fcn.0045aa60
lea ecx, [esp + 0x30]
mov edi, eax
call fcn.00461c30
test edi, edi
jne 0x4620ab
mov ecx, dword [esp + 0xf4]
push edi
call fcn.004555b0
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x462090
push edi
mov edi, dword [esp + 0x20]
lea ecx, [esp + 0x6c]
mov eax, dword [edi + 0x1108]
push eax
call fcn.0043e830
push edi
lea ecx, [esp + 0x34]
call fcn.0043e840
mov edx, dword [esp + 0xf4]
push esi
lea ecx, [esp + 0x44]
push ebx
push ecx
push ebp
push edx
mov ecx, edi
call fcn.0045aa60
mov edi, eax
test edi, edi
je 0x46207a
cmp dword [esp + 0x40], 3
jne 0x46207a
mov ecx, dword [esp + 0x48]
push 0
call fcn.004555b0
mov edi, dword [eax + 0x38]
lea ecx, [esp + 0x30]
call fcn.0043e870
lea ecx, [esp + 0x68]
call fcn.00461c30
test edi, edi
jne 0x4620ab
mov ecx, dword [esp + 0xf4]
push esi
lea eax, [esp + 0x44]
push ebx
push eax
push ebp
push ecx
mov ecx, dword [esp + 0x30]
call fcn.0045aa60
xor edi, edi
mov edx, dword [esp + 0xf4]
lea ecx, [esp + 0x54]
push edx
call fcn.00454490
jmp 0x4620e0
mov eax, dword [esp + 0x10c]
lea edx, [esp + 0x54]
push eax
lea eax, [esp + 0x44]
push edx
mov edx, dword [esp + 0x100]
push eax
push ebp
push edx
call fcn.0045b4b0
mov edi, eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x1138]
mov ecx, dword [ebx + 0xb60]
cmp ecx, eax
jge 0x4620fc
cmp dword [ebx + 0xd5c], eax
jl 0x462108
mov dword [ebx + 0xca0], 1
xor edi, edi
mov eax, dword [ebx + 0xca0]
xor ebp, ebp
cmp eax, ebp
jne 0x462e8f
cmp edi, ebp
je 0x462e8f
cmp dword [esp + 0x40], 3
jne 0x462e8f
mov ecx, dword [esp + 0x48]
push ebp
mov esi, ecx
mov dword [esp + 0x1c], esi
call fcn.004555b0
push eax
push ebx
lea ecx, [esp + 0xe8]
call fcn.0043e610
cmp esi, ebp
mov byte [esp + 0x13], 0
je 0x462217
mov ecx, esi
call fcn.004554f0
test eax, eax
je 0x462217
mov edi, esi
mov dword [esp + 0x38], ebp
mov ecx, edi
mov dword [esp + 0x30], 6
mov dword [esp + 0x34], ebp
call fcn.004554f0
mov esi, eax
mov ecx, esi
call fcn.004554f0
test eax, eax
jne 0x462194
mov ecx, esi
call fcn.004530f0
mov esi, eax
cmp esi, ebp
je 0x4621e7
push ebp
lea eax, [esp + 0x34]
push ebp
push eax
push str.__constructor__
push esi
mov ecx, ebx
call fcn.0045a980
test eax, eax
je 0x4621e7
cmp dword [esp + 0x30], 3
jne 0x4621e7
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x58]
call fcn.004546b0
lea edx, [esp + 0x30]
lea ecx, [esp + 0x40]
push edx
mov dword [esp + 0xf8], edi
mov byte [esp + 0x17], 1
call fcn.004546b0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x30]
call fcn.00454270
mov ecx, dword [esp + 0x34]
cmp ecx, ebp
je 0x462217
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x462217
call fcn.00455c10
cmp dword [esp + 0x104], ebp
je 0x4622df
cmp dword [esp + 0x108], ebp
jne 0x462237
push ebx
lea ecx, [esp + 0x58]
call fcn.004545a0
lea eax, [esp + 0x54]
mov ecx, ebx
push eax
call fcn.004633d0
mov esi, eax
cmp esi, ebp
je 0x4622df
lea ecx, [ebx + 0xce8]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.00452a60
cmp eax, ebp
je 0x46226a
push ebp
push eax
mov ecx, esi
call fcn.00453160
mov ecx, ebx
call fcn.004683a0
mov ecx, eax
call fcn.00451fa0
test al, al
jne 0x462295
push 0x101
lea edx, [esp + 0x44]
push ebp
lea eax, [ebx + 0xcf8]
push edx
push eax
mov ecx, esi
call fcn.00453210
push 0x81
lea ecx, [esp + 0x44]
push ebp
lea edx, [ebx + 0xd04]
push ecx
push edx
mov ecx, esi
call fcn.00453210
mov al, byte [esp + 0x110]
mov dword [esp + 0xf4], esi
mov esi, dword [esp + 0xf8]
test al, al
je 0x4622d2
cmp esi, ebp
je 0x4622e6
mov ecx, esi
call fcn.0044cdd0
cmp esi, ebp
je 0x4622e6
mov ecx, esi
call fcn.0044ce60
jmp 0x4622e6
mov esi, dword [esp + 0xf8]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x70]
cmp eax, ebp
mov dword [esp + 0x68], eax
je 0x4624ff
lea ecx, [esp + 0x88]
mov dword [esp + 0x8c], ebp
call fcn.0043d6b0
lea ecx, [esp + 0x98]
call fcn.00462fd0
mov edi, dword [esp + 0x100]
mov eax, edi
shl eax, 4
add eax, 4
push eax
call fcn.0041ec00
add esp, 4
cmp eax, ebp
je 0x4624f9
lea ecx, [edi - 1]
lea edx, [eax + 4]
mov dword [eax], edi
cmp ecx, ebp
mov eax, edx
jl 0x46235c
inc ecx
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax], 6
mov dword [eax + 4], ebp
add eax, 0x10
dec ecx
jne 0x462347
cmp edx, ebp
mov dword [esp + 0x7c], edx
je 0x4624b8
mov al, byte [esp + 0x13]
mov dword [esp + 0x70], ebx
test al, al
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], edi
jne 0x46238e
mov eax, dword [esp + 0x104]
mov dword [esp + 0x80], ebp
cmp eax, ebp
je 0x462399
mov dword [esp + 0x80], 1
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x9c]
call fcn.004546b0
mov ecx, dword [esp + 0xf4]
cmp ecx, ebp
je 0x4623ea
call fcn.004554f0
test eax, eax
je 0x4623ea
mov ecx, dword [esp + 0xf4]
mov esi, ecx
call fcn.004554f0
cmp eax, ebp
je 0x4623dd
mov ecx, eax
mov esi, eax
call fcn.004554f0
cmp eax, ebp
jne 0x4623d0
push esi
lea ecx, [esp + 0x9c]
call fcn.00454490
mov edx, dword [esp + 0x18]
cmp edi, ebp
mov eax, dword [edx + 0x78]
mov dword [esp + 0xa8], eax
je 0x46241a
xor esi, esi
mov dword [esp + 0x100], ebp
mov ecx, dword [esp + 0x7c]
lea edx, [esi + ecx]
mov ecx, ebx
push edx
call fcn.0045fbe0
add esi, 0x10
dec edi
jne 0x462405
mov edi, dword [ebx + 0xd5c]
lea eax, [esp + 0x70]
inc edi
push eax
mov dword [ebx + 0xd5c], edi
call dword [esp + 0x6c]
mov ecx, dword [ebx + 0xd5c]
mov eax, dword [esp + 0x84]
add esp, 4
dec ecx
cmp eax, ebp
mov dword [ebx + 0xd5c], ecx
lea esi, [esp + 0x98]
jne 0x462459
lea esi, [esp + 0x88]
mov ecx, ebx
call fcn.0045fa10
test eax, eax
je 0x46247d
mov ecx, dword [ebx + 0xc8c]
mov edx, dword [ebx + 0xc88]
shl ecx, 4
push esi
lea ecx, [ecx + edx - 0x10]
call fcn.004546b0
mov ecx, dword [esp + 0x7c]
cmp ecx, ebp
je 0x4624b0
mov eax, dword [ecx - 4]
lea ebp, [ecx - 4]
mov esi, eax
shl esi, 4
add esi, ecx
dec eax
js 0x4624a5
lea edi, [eax + 1]
sub esi, 0x10
mov ecx, esi
call fcn.0043d680
dec edi
jne 0x462498
push ebp
call fcn.0041ec10
add esp, 4
xor ebp, ebp
mov dword [esp + 0x20], 1
lea ecx, [esp + 0x98]
call fcn.00454270
mov ecx, dword [esp + 0x9c]
cmp ecx, ebp
je 0x4624d4
call fcn.00421e30
lea ecx, [esp + 0x88]
call fcn.00454270
mov ecx, dword [esp + 0x8c]
cmp ecx, ebp
je 0x462e7d
call fcn.00421e30
jmp 0x462e7d
mov dword [esp + 0x7c], ebp
jmp 0x4624b8
cmp dword [ecx + 0x68], ebp
je 0x462e7d
push 0xc
call fcn.0041ec00
add esp, 4
cmp eax, ebp
je 0x462521
mov ecx, eax
call fcn.0045d070
mov edi, eax
jmp 0x462523
xor edi, edi
mov esi, dword [esp + 0x100]
mov dword [esp + 0x68], edi
mov eax, esi
shl eax, 4
add eax, 4
push eax
call fcn.0041ec00
add esp, 4
cmp eax, ebp
je 0x462569
lea ecx, [esi - 1]
lea edx, [eax + 4]
mov dword [eax], esi
cmp ecx, ebp
mov eax, edx
jl 0x46256b
inc ecx
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax], 6
mov dword [eax + 4], ebp
add eax, 0x10
dec ecx
jne 0x462552
jmp 0x46256b
xor edx, edx
cmp edi, ebp
mov dword [esp + 0x50], edx
je 0x462e7d
cmp edx, ebp
je 0x462e7d
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x18]
cmp eax, ebp
je 0x462594
mov ecx, dword [eax + 0x34]
call fcn.0044e550
jmp 0x46259b
mov ecx, ebx
call fcn.00467ee0
mov ebp, eax
cmp ebp, 6
mov dword [esp + 0x2c], ebp
jl 0x4625d2
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x80]
test ecx, ecx
je 0x4625c1
call fcn.004554b0
mov esi, eax
mov dword [esp + 0x20], esi
jmp 0x4625c5
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x462616
mov esi, dword [esp + 0xf8]
jmp 0x462612
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0xf8]
cmp eax, 4
mov dword [esp + 0x20], esi
jne 0x4625f9
lea ecx, [esp + 0x54]
call fcn.00454420
test eax, eax
je 0x4625f9
mov esi, eax
mov dword [esp + 0x20], esi
test esi, esi
jne 0x462616
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x80]
test ecx, ecx
je 0x462616
call fcn.004554b0
mov esi, eax
mov dword [esp + 0x20], esi
push 0x50
call fcn.0041ec00
add esp, 4
test eax, eax
je 0x462630
push ebx
mov ecx, eax
call fcn.00436890
mov edi, eax
jmp 0x462632
xor edi, edi
mov ecx, dword [esp + 0x68]
mov dword [edi + 4], ecx
mov ecx, edi
call fcn.004368e0
cmp ebp, 6
push 0x4c
jl 0x46267f
call fcn.0041ec00
add esp, 4
test eax, eax
je 0x462667
mov esi, dword [esp + 0x18]
mov ecx, eax
mov edx, dword [esi + 0x80]
push edx
call fcn.00455300
jmp 0x46266d
mov esi, dword [esp + 0x18]
xor eax, eax
mov edx, dword [edi + 0x1c]
push 1
push edx
mov ecx, eax
mov dword [edi + 0x2c], eax
call fcn.00455360
jmp 0x4626d5
call fcn.0041ec00
add esp, 4
test eax, eax
je 0x462695
push ebx
mov ecx, eax
call fcn.004552e0
jmp 0x462697
xor eax, eax
push 0
push 1
mov ecx, ebx
mov dword [edi + 0x2c], eax
call fcn.00461bc0
mov ecx, dword [edi + 0x2c]
push eax
call fcn.00455360
test esi, esi
je 0x4626c3
mov ecx, dword [edi + 0x2c]
add esi, 0x110
push 0
push esi
call fcn.00455360
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x2c]
push 1
push eax
call fcn.00455360
mov esi, dword [esp + 0x18]
push edi
lea ecx, [ebx + 0x5b0]
call fcn.00436b20
mov eax, dword [esi + 0x6c]
xor ecx, ecx
cmp eax, ecx
mov dword [edi + 0x20], eax
je 0x4626f0
inc dword [eax + 8]
mov eax, dword [esi + 0x18]
mov ebp, 0x7fffffff
test eax, eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x8c], 0xffffffff
mov dword [esp + 0x90], ebp
je 0x46272e
mov ecx, dword [eax + 0x34]
call fcn.0044e550
mov ecx, dword [esi + 0x68]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x70], ecx
jmp 0x462762
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x462750
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x68]
call fcn.00467ee0
mov ecx, esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x70], ecx
jmp 0x462762
mov ecx, dword [esi + 0x68]
mov dword [esp + 0x8c], 7
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x18]
xor ebx, ebx
mov dword [esp + 0x90], ebp
mov dword [esp + 0x84], 0x20000000
mov al, byte [eax + 0x84]
mov dword [esp + 0x74], 2
mov bh, byte [ecx + 1]
mov byte [esp + 0x13], al
mov bl, byte [ecx]
mov dword [esp + 0x24], 0
test al, al
mov dword [esp + 0x28], ebx
je 0x462825
mov cl, byte [ecx + 2]
mov dword [esp + 0x74], 3
mov byte [edi + 0x48], cl
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
lea eax, [ecx + edx]
add ecx, 2
mov dword [esp + 0x74], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov al, byte [edi + 0x48]
test al, al
mov dword [esp + 0x24], ecx
je 0x462825
and eax, 0xff
mov esi, eax
mov edx, esi
shl edx, 4
add edx, 4
push edx
call fcn.0041ec00
xor ebp, ebp
add esp, 4
cmp eax, ebp
je 0x46281e
mov dword [eax], esi
dec esi
lea edx, [eax + 4]
cmp esi, ebp
mov eax, edx
jl 0x462820
lea ecx, [esi + 1]
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax], 6
mov dword [eax + 4], ebp
add eax, 0x10
dec ecx
jne 0x462804
mov dword [edi + 0x4c], edx
jmp 0x462827
xor edx, edx
mov dword [edi + 0x4c], edx
jmp 0x462827
xor ebp, ebp
mov al, byte [esp + 0x24]
mov dword [esp + 0xd8], ebp
test al, 2
mov dword [esp + 0xd0], 6
mov dword [esp + 0xd4], ebp
jne 0x4628b9
lea eax, [esp + 0x54]
lea ecx, [esp + 0xd0]
push eax
call fcn.004546b0
mov esi, dword [esp + 0xf4]
cmp esi, ebp
je 0x462894
mov ecx, esi
call fcn.004554f0
test eax, eax
je 0x462894
mov ecx, esi
call fcn.004554f0
cmp eax, ebp
je 0x462887
mov ecx, eax
mov esi, eax
call fcn.004554f0
cmp eax, ebp
jne 0x46287a
push esi
lea ecx, [esp + 0xd4]
call fcn.00454490
test byte [esp + 0x24], 1
jne 0x4628b9
mov edx, dword [esp + 0x1c]
push 3
lea ecx, [esp + 0xd4]
push ebp
add edx, 0xcec
push ecx
mov ecx, dword [edi + 0x1c]
push edx
call fcn.00453210
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x24], ecx
call fcn.00452540
mov al, byte [esp + 0x24]
test al, 8
jne 0x4628ea
test al, 4
jne 0x4628d9
mov ecx, dword [edi + 0x1c]
call fcn.00453f30
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x100]
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], ecx
mov eax, dword [esp + 0x100]
xor ebp, ebp
test eax, eax
jle 0x4629c8
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
push esi
call fcn.0045fbe0
cmp ebp, ebx
jge 0x4629b1
mov al, byte [esp + 0x13]
test al, al
je 0x46295d
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov bl, byte [eax + edx]
inc eax
test bl, bl
mov dword [esp + 0x74], eax
mov byte [esp + 0x30], bl
je 0x46295d
lea ecx, [esp + 0x70]
call fcn.004485b0
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x4629b1
cmp bl, byte [edi + 0x48]
jae 0x4629b1
mov ecx, dword [esp + 0x30]
push esi
and ecx, 0xff
shl ecx, 4
add ecx, eax
call fcn.004546b0
jmp 0x4629b1
lea ecx, [esp + 0x70]
call fcn.004484f0
mov ecx, dword [esp + 0x1c]
push ecx
push eax
call fcn.004559c0
mov ecx, dword [edi + 0x1c]
add esp, 8
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
push 0
push 0
push esi
push edx
call fcn.00453210
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4629b1
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x4629b1
call fcn.00455c10
mov eax, dword [esp + 0x100]
mov ebx, dword [esp + 0x28]
inc ebp
add esi, 0x10
cmp ebp, eax
jl 0x4628ff
xor eax, eax
cmp ebp, ebx
mov dword [esp + 0x100], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc0], 6
mov dword [esp + 0xc4], eax
jge 0x462a3c
sub ebx, ebp
mov esi, ebx
mov al, byte [esp + 0x13]
test al, al
je 0x462a0e
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov cl, byte [eax + ecx]
inc eax
test cl, cl
mov dword [esp + 0x74], eax
jne 0x462a2e
lea ecx, [esp + 0x70]
call fcn.00448490
mov ecx, dword [edi + 0x1c]
push 0
lea edx, [esp + 0xc4]
push 0
push edx
push eax
call fcn.004531a0
jmp 0x462a37
lea ecx, [esp + 0x70]
call fcn.00448590
dec esi
jne 0x4629f2
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], eax
mov al, byte [esp + 0x24]
mov dword [esp + 0xb0], 6
test al, 0x20
jne 0x462b82
cmp dword [esp + 0x2c], 6
jl 0x462b82
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x462b82
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0xb0]
push eax
call fcn.004545a0
mov eax, dword [esp + 0x64]
test eax, eax
je 0x462b47
mov eax, dword [esp + 0xf4]
xor esi, esi
xor ebx, ebx
cmp eax, dword [esp + 0x64]
je 0x462ab5
mov ecx, eax
inc esi
call fcn.004530f0
cmp eax, ebx
jne 0x462aa3
mov ecx, dword [esp + 0xf4]
push ecx
mov ecx, dword [esp + 0xbc]
call fcn.00455520
cmp esi, ebx
jle 0x462b5d
mov ebp, 6
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x30]
push edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebx
call fcn.004545a0
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x38]
push eax
call fcn.00455520
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0xb4]
call fcn.004546b0
lea ecx, [esp + 0x30]
call fcn.00454270
mov ecx, dword [esp + 0x34]
cmp ecx, ebx
je 0x462b42
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x462b42
call fcn.00455c10
dec esi
jne 0x462ad6
jmp 0x462b5d
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xb8]
push eax
call fcn.00455520
xor ebx, ebx
test byte [esp + 0x24], 0x10
jne 0x462b82
mov edx, dword [esp + 0x1c]
push 3
lea ecx, [esp + 0xb4]
push ebx
add edx, 0xcf0
push ecx
mov ecx, dword [edi + 0x1c]
push edx
call fcn.00453210
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x462d2a
mov cl, byte [esp + 0x24]
mov byte [esp + 0x14], 1
test cl, 1
je 0x462bb0
lea ecx, [eax + 0x10]
lea eax, [esp + 0xd0]
push eax
mov byte [esp + 0x18], 2
call fcn.004546b0
test byte [esp + 0x24], 4
je 0x462be3
mov eax, dword [esp + 0x14]
mov ebp, dword [edi + 0x4c]
mov bl, byte [esp + 0x14]
and eax, 0xff
shl eax, 4
add eax, ebp
mov ebp, dword [esp + 0x1c]
push eax
inc bl
push edi
push ebp
mov byte [esp + 0x20], bl
call fcn.00461d30
add esp, 0xc
jmp 0x462be7
mov ebp, dword [esp + 0x1c]
test byte [esp + 0x24], 0x10
je 0x462c17
mov ecx, dword [esp + 0x14]
mov esi, dword [edi + 0x4c]
mov dl, byte [esp + 0x14]
and ecx, 0xff
shl ecx, 4
add ecx, esi
inc dl
mov byte [esp + 0x14], dl
lea edx, [esp + 0xb0]
push edx
call fcn.004546b0
mov al, byte [esp + 0x24]
mov ebx, dword [esp + 0x20]
test al, 0x40
je 0x462cb5
test ebx, ebx
je 0x462c30
mov esi, dword [ebx + 0x74]
jmp 0x462c33
mov esi, dword [ebp + 0x7c]
test esi, esi
je 0x462cb5
mov eax, dword [esi + 4]
test eax, eax
je 0x462c86
lea ebx, [ebp + 0x5e0]
cmp eax, ebx
je 0x462c86
mov eax, dword [esi + 0x20]
mov ecx, dword [eax + 0x34]
call fcn.0044e550
cmp eax, 6
jg 0x462c6b
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + 0x34]
call fcn.0044e550
cmp eax, 6
jle 0x462c7c
mov al, byte [esi + 0x6a]
test al, al
je 0x462c7c
mov eax, dword [ebp + 0x11a8]
test eax, eax
je 0x462c86
mov esi, dword [esi + 4]
mov eax, dword [esi + 4]
test eax, eax
jne 0x462c44
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0x4c]
mov edx, dword [esi + 0x20]
mov bl, byte [esp + 0x14]
and ecx, 0xff
add edx, 0x110
shl ecx, 4
add ecx, eax
inc bl
push edx
mov byte [esp + 0x18], bl
call fcn.00454490
mov ebx, dword [esp + 0x20]
test byte [esp + 0x24], 0x80
je 0x462cfc
test ebx, ebx
je 0x462cfc
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x462cfc
mov eax, dword [eax + 4]
test eax, eax
je 0x462cfc
mov eax, dword [eax + 0x20]
test eax, eax
je 0x462cfc
mov ecx, dword [esp + 0x14]
mov esi, dword [edi + 0x4c]
mov dl, byte [esp + 0x14]
and ecx, 0xff
shl ecx, 4
add ecx, esi
add eax, 0x110
inc dl
push eax
mov byte [esp + 0x18], dl
call fcn.00454490
mov eax, dword [esp + 0x24]
test ah, 1
je 0x462d32
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 0x4c]
and esi, 0xff
push 1
shl esi, 4
mov ecx, ebp
add esi, eax
call fcn.00461bc0
push eax
mov ecx, esi
call fcn.00454490
jmp 0x462d32
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x74]
push 0
add ecx, 2
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x1c]
call fcn.004555b0
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x74]
push 0xffffffffffffffff
add ecx, eax
push ebx
push ecx
mov ecx, dword [esp + 0x78]
push ebp
call fcn.00436390
mov eax, dword [esp + 0x104]
xor edx, edx
test eax, eax
setne dl
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x3c]
inc edx
mov ecx, 1
test eax, eax
mov dword [edi + 0x18], edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], ecx
jne 0x462ddb
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx - 4]
lea edi, [ecx - 4]
mov esi, eax
shl esi, 4
add esi, ecx
dec eax
js 0x462dd2
lea ebx, [eax + 1]
sub esi, 0x10
mov ecx, esi
call fcn.00454270
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x462dcf
mov edx, dword [ecx]
mov eax, edx
and al, 0xfe
not edx
dec eax
and edx, 1
xor eax, edx
test eax, 0xfffffffe
mov dword [ecx], eax
jg 0x462dcf
call fcn.00455c10
dec ebx
jne 0x462da2
push edi
call fcn.0041ec10
add esp, 4
lea ecx, [esp + 0xb0]
call fcn.00454270
mov ecx, dword [esp + 0xb4]
test ecx, ecx
je 0x462e11
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x462e11
call fcn.00455c10
lea ecx, [esp + 0xc0]
call fcn.00454270
mov ecx, dword [esp + 0xc4]
test ecx, ecx
je 0x462e47
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x462e47
call fcn.00455c10
lea ecx, [esp + 0xd0]
call fcn.00454270
mov ecx, dword [esp + 0xd4]
test ecx, ecx
je 0x462e7d
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x462e7d
call fcn.00455c10
lea ecx, [esp + 0xe0]
call fcn.0043e740
mov ebx, dword [esp + 0x1c]
xor ebp, ebp
mov esi, dword [esp + 0x100]
cmp esi, ebp
je 0x462ea4
mov ecx, ebx
call fcn.0045fb60
dec esi
jne 0x462e9a
cmp dword [esp + 0x2c], ebp
je 0x462ed2
mov ecx, ebx
call fcn.0045fa10
test eax, eax
je 0x462ed2
mov ecx, dword [ebx + 0xc8c]
mov edx, dword [ebx + 0xc88]
shl ecx, 4
lea eax, [esp + 0x54]
push eax
lea ecx, [ecx + edx - 0x10]
call fcn.004546b0
cmp dword [esp + 0x20], ebp
jne 0x462f52
mov ecx, ebx
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xc0], 6
mov dword [esp + 0xc4], ebp
call fcn.0045fa10
test eax, eax
je 0x462f1c
mov ecx, dword [ebx + 0xc8c]
mov edx, dword [ebx + 0xc88]
shl ecx, 4
lea eax, [esp + 0xc0]
push eax
lea ecx, [ecx + edx - 0x10]
call fcn.004546b0
lea ecx, [esp + 0xc0]
call fcn.00454270
mov ecx, dword [esp + 0xc4]
cmp ecx, ebp
je 0x462f52
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x462f52
call fcn.00455c10
lea ecx, [esp + 0x54]
call fcn.00454270
mov ecx, dword [esp + 0x58]
cmp ecx, ebp
je 0x462f82
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x462f82
call fcn.00455c10
lea ecx, [esp + 0x40]
call fcn.00454270
mov ecx, dword [esp + 0x44]
pop edi
pop esi
cmp ecx, ebp
pop ebp
pop ebx
je 0x462fb6
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x462fb6
call fcn.00455c10
mov eax, dword [esp + 0x18]
add esp, 0xe0
ret 0x20