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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
mov eax, dword [0x50e74c]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [ebp + 8]
push ebx
push esi
mov esi, dword [eax + 8]
mov ebx, dword [eax]
push edi
mov dword [esp + 0x20], eax
mov edi, dword [esi + 0x24]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x38], 0
lea eax, [edi + 1]
mov dword [esp + 0x14], ebx
mov dword [esi + 0x24], eax
lea eax, [edi - 1]
mov dword [esp + 0x2c], esi
test edi, eax
jne 0x45643a
mov eax, dword [esi]
mov ecx, dword [esi + 0x28]
mov edx, ecx
mov dword [esp + 0x3c], eax
lea eax, [edi*8 + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x3c]
push eax
call fcn.00407a10
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
jne 0x456437
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
call fcn.00407740
mov eax, dword [esp + 0x48]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x28]
test eax, eax
je 0x456448
mov dword [eax + edi*4], 0xffffffff
or ecx, 0xffffffff
mov eax, ecx
sub eax, edi
mov edi, dword [esi + 0x24]
mov dword [esp + 0x54], eax
lea eax, [edi + 1]
mov dword [esi + 0x24], eax
lea eax, [edi - 1]
test edi, eax
jne 0x4564a5
mov eax, dword [esi]
mov ecx, dword [esi + 0x28]
mov edx, ecx
mov dword [esp + 0x3c], eax
lea eax, [edi*8 + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x3c]
push eax
call fcn.00407a10
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
jne 0x45649f
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
call fcn.00407740
mov eax, dword [esp + 0x48]
mov dword [esi + 0x28], eax
or ecx, 0xffffffff
mov eax, dword [esi + 0x28]
test eax, eax
je 0x4564b3
mov dword [eax + edi*4], 0xffffffff
sub ecx, edi
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x38]
movzx edi, byte [ecx + 4]
mov eax, dword [ecx + 0x3c]
mov dword [esp + 0x58], eax
mov eax, dword [edx]
mov dword [esp + 0x50], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], eax
cmp edi, 0x71
je 0x4565fc
cmp byte [ebx + 0x40], 0
mov edi, 1
mov dword [esp + 0x18], edi
jne 0x4565fc
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp + 0x3c], eax
nop
mov eax, dword [ecx]
cmp edi, dword [eax]
jg 0x4565f8
mov eax, dword [edx + 8]
xor ecx, ecx
cmp dword [esp + 0x30], ecx
jle 0x456537
mov esi, dword [esp + 0x30]
lea edx, [eax + 0x14]
lea esp, [esp]
movzx eax, word [edx]
cmp eax, edi
je 0x45652f
inc ecx
add edx, 0x18
cmp ecx, esi
jl 0x456520
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
cmp ecx, eax
jne 0x4565ca
mov edx, 0x31
mov ecx, ebx
call fcn.00407990
mov edi, eax
test edi, edi
je 0x4565de
push 0x31
push 0
push edi
call fcn.004cb9a0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x20]
or eax, 0xffffffff
mov word [edi + 0x22], ax
mov eax, dword [esp + 0x18]
mov byte [edi], 0x81
mov byte [edi + 0x30], 0
or dword [edi + 4], 0x400
push edi
mov dword [edi + 0x18], 1
mov dword [edi + 8], eax
call fcn.00435a90
mov edi, dword [esp + 0x1c]
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
test edx, edx
je 0x4565c6
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 8]
mov word [eax + ecx + 0x14], di
mov eax, dword [esp + 0x30]
inc eax
add ecx, 0x18
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], ecx
jmp 0x4565ca
mov eax, dword [esp + 0x30]
inc edi
cmp byte [ebx + 0x40], 0
mov dword [esp + 0x18], edi
jne 0x4565fc
mov ecx, dword [esp + 0x28]
jmp 0x456500
mov eax, 7
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.004c515f
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x30]
lea edx, [eax*4]
mov ecx, ebx
call fcn.00407990
mov edi, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4568b4
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov edx, dword [edi + 8]
test eax, eax
jle 0x45664b
mov edi, dword [esp + 0x3c]
add edx, 0x14
mov esi, eax
movzx eax, word [edx]
lea edx, [edx + 0x18]
dec eax
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x456630
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
lea edx, [eax*4 + 0x15]
mov ecx, ebx
add edx, eax
call fcn.00407990
mov ecx, eax
mov dword [esp + 0x60], ecx
test ecx, ecx
je 0x4566a6
mov ecx, dword [esp + 0x30]
lea eax, [ecx*4 + 0x15]
add eax, ecx
push eax
push 0
push dword [esp + 0x68]
call fcn.004cb9a0
mov ecx, dword [esp + 0x6c]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov word [ecx + 6], dx
lea eax, [edx + 4]
lea eax, [ecx + eax*4]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
mov dword [ecx], ebx
jmp 0x4566aa
mov edx, dword [esp + 0x30]
test ecx, ecx
je 0x4568bc
xor ecx, ecx
mov dword [esp + 0x4c], ecx
test edx, edx
jle 0x4568bc
mov esi, dword [esp + 0x60]
xor edx, edx
add esi, 0xc
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], esi
mov eax, dword [edi + 8]
mov eax, dword [edx + eax]
mov dword [esp + 0x40], eax
test dword [eax + 4], 0x100
je 0x4566f6
mov ecx, dword [esp + 0x20]
mov edx, eax
call fcn.00434540
mov ecx, eax
jmp 0x456870
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
mov edx, dword [esi + 0x3c]
mov edi, dword [eax + ecx*4]
test edx, edx
je 0x4567b3
mov ecx, dword [esp + 0x20]
push edi
call fcn.00455610
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x4567b9
mov esi, dword [esp + 0x20]
test ecx, ecx
jne 0x456736
mov ecx, dword [ebx + 8]
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx]
mov edi, eax
mov dword [esp + 0x24], eax
test eax, eax
je 0x45685a
cmp byte [eax], 0
je 0x456756
jmp 0x456750
inc edi
cmp byte [edi], 0
jne 0x456750
sub edi, eax
and edi, 0x3fffffff
jbe 0x45685a
mov ecx, dword [esi]
lea eax, [edi + 0x31]
mov edx, eax
mov dword [esp + 0x48], eax
call fcn.00407990
mov dword [esp + 0x18], eax
test eax, eax
je 0x456856
push dword [esp + 0x48]
push 0
push eax
call fcn.004cb9a0
mov ecx, dword [esp + 0x24]
or eax, 0xffffffff
add esp, 0xc
mov word [ecx + 0x22], ax
lea eax, [edi + 1]
mov byte [ecx], 0x5c
test eax, eax
jne 0x4567e2
or dword [ecx + 4], 0x400
mov dword [ecx + 8], eax
jmp 0x456839
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov edx, dword [esi]
mov esi, dword [esp + 0x20]
cmp edi, dword [edx]
jge 0x45672b
mov edx, dword [edx + 8]
lea eax, [edi + edi*2]
mov ecx, esi
mov edx, dword [edx + eax*8]
call fcn.00434540
mov ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x45672b
push edi
push dword [esp + 0x28]
lea eax, [ecx + 0x30]
push eax
mov dword [ecx + 8], eax
call fcn.004c9320
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov eax, dword [ecx + 8]
mov byte [edi + eax], 0
lea eax, [edi + 1]
cmp eax, 3
jl 0x456839
mov eax, dword [esp + 0x24]
movsx edi, byte [eax]
cmp edi, 0x27
je 0x456824
cmp edi, 0x22
je 0x456824
cmp edi, 0x5b
je 0x456824
cmp edi, 0x60
jne 0x456839
mov ecx, dword [ecx + 8]
call fcn.00409c50
mov ecx, dword [esp + 0x18]
cmp edi, 0x22
jne 0x456839
or dword [ecx + 4], 0x40
mov edx, dword [esp + 0x40]
or dword [ecx + 4], 0x1100
mov dword [ecx + 0xc], edx
mov edx, ecx
mov dword [ecx + 0x18], 1
mov ecx, dword [esp + 0x1c]
jmp 0x45685e
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x34]
mov eax, dword [edi + 8]
mov dword [esi + eax], edx
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x34]
mov dword [esi], ecx
mov ecx, dword [esp + 0x60]
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x4c]
mov ecx, dword [ecx + 8]
mov al, byte [edx + eax + 0xc]
add edx, 0x18
mov dword [esp + 0x34], edx
mov byte [esi + ecx], al
mov ecx, esi
mov esi, dword [esp + 0x44]
inc ecx
add esi, 4
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x44], esi
cmp ecx, dword [esp + 0x30]
jl 0x4566d1
mov esi, dword [esp + 0x2c]
jmp 0x4568bc
mov dword [esp + 0x60], 0
mov edx, dword [esp + 0x28]
push 0
mov dword [edx + 0x38], edi
mov edx, edi
mov edi, dword [esp + 0x24]
mov ecx, dword [edi]
call fcn.00435460
mov edx, dword [esp + 0x5c]
add esp, 4
cmp dword [esp + 0x50], 0x71
mov dword [edx + 0x38], eax
jne 0x4568f0
mov dword [esp + 0x5c], 0
jmp 0x456a86
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x34], ecx
lea edx, [eax + 1]
inc eax
add eax, ecx
mov dword [esp + 0x5c], edx
mov dword [edi + 0x4c], eax
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x24], ecx
cmp eax, ecx
jg 0x456984
test eax, eax
je 0x456922
add eax, eax
jmp 0x456927
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x4569b4
mov eax, dword [esi]
test eax, eax
je 0x456960
cmp edi, dword [eax + 0x10c]
jb 0x456960
cmp edi, dword [eax + 0x110]
jae 0x456960
movzx ecx, word [eax + 0xf0]
jmp 0x45696c
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x24]
shr edx, 4
mov dword [esi + 0x20], edx
mov edx, dword [esp + 0x5c]
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x34]
mov ecx, ebx
lea edx, [edi*4 + 0x15]
add edx, edi
call fcn.00407990
mov ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x456a86
lea eax, [edi*4 + 0x15]
add eax, edi
push eax
push 0
push ecx
call fcn.004cb9a0
mov ecx, dword [esp + 0x44]
lea eax, [edi + 4]
add esp, 0xc
mov word [ecx + 6], di
lea eax, [ecx + eax*4]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
mov dword [ecx], ebx
test ecx, ecx
je 0x456a86
xor edi, edi
cmp dword [esp + 0x34], edi
jle 0x456a86
mov ebx, dword [esp + 0x38]
xor esi, esi
add ecx, 0xc
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x3c]
test edx, edx
je 0x456a45
mov ecx, dword [esp + 0x20]
push edi
call fcn.00455610
mov ecx, dword [esp + 0x1c]
add esp, 4
test eax, eax
jne 0x456a64
jmp 0x456a47
xor eax, eax
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
cmp edi, dword [edx]
jge 0x456a64
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x20]
mov edx, dword [edx + esi]
call fcn.00434540
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
add esi, 0x18
mov eax, dword [ebx + 8]
add ecx, 4
mov dword [esp + 0x18], ecx
mov byte [edi + eax], 0
inc edi
cmp edi, dword [esp + 0x34]
jl 0x456a23
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov edx, edi
mov ecx, dword [esp + 0x20]
push str.ORDER
push dword [edi + 0x38]
mov dword [edi + 0x3c], 0
call fcn.00433ac0
mov eax, dword [esp + 0x60]
add esp, 8
cmp dword [eax + 0x3c], 0
jne 0x456ac7
mov ecx, dword [esp + 0x20]
mov edx, eax
push str.ORDER
push dword [eax + 0x38]
call fcn.00433ac0
add esp, 8
push dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
mov edx, edi
call fcn.00455470
add esp, 4
cmp dword [edi + 8], 0
je 0x456d2f
cmp dword [esp + 0x50], 0x71
jne 0x456d2f
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x4c]
inc eax
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x34], eax
mov dword [ecx + 0x4c], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x456b12
lea edx, [eax + 1]
mov dword [esp + 0x24], edx
jmp 0x456b19
mov eax, dword [edi + 8]
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x456b8d
test eax, eax
je 0x456b2f
add eax, eax
jmp 0x456b34
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x456bc1
mov eax, dword [esi]
test eax, eax
je 0x456b6d
cmp edi, dword [eax + 0x10c]
jb 0x456b6d
cmp edi, dword [eax + 0x110]
jae 0x456b6d
movzx ecx, word [eax + 0xf0]
jmp 0x456b79
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x456c35
test eax, eax
je 0x456bd7
add eax, eax
jmp 0x456bdc
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x456c69
mov eax, dword [esi]
test eax, eax
je 0x456c15
cmp edi, dword [eax + 0x10c]
jb 0x456c15
cmp edi, dword [eax + 0x110]
jae 0x456c15
movzx ecx, word [eax + 0xf0]
jmp 0x456c21
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x28]
mov edi, dword [edi + 0x48]
mov dword [esp + 0x1c], edi
test edi, edi
je 0x456ffe
test dword [edi + 4], 0x4000
jne 0x456f82
mov edx, dword [edi + 0xc]
mov ecx, ebx
call fcn.004350a0
mov edx, dword [edi + 0x10]
mov ecx, ebx
call fcn.004350a0
test dword [edi + 4], 0x10000
je 0x456cb0
mov edx, dword [edi + 8]
mov ecx, ebx
call fcn.00407740
test dword [edi + 4], 0x800
je 0x456d44
mov edi, dword [edi + 0x14]
test edi, edi
je 0x456f7e
mov edx, dword [edi]
mov ecx, ebx
call fcn.00435c40
mov edx, dword [edi + 0x28]
mov ecx, ebx
call fcn.00441b00
mov edx, dword [edi + 0x2c]
mov ecx, ebx
call fcn.004350a0
mov edx, dword [edi + 0x30]
mov ecx, ebx
call fcn.00435c40
mov edx, dword [edi + 0x34]
mov ecx, ebx
call fcn.004350a0
mov edx, dword [edi + 0x38]
mov ecx, ebx
call fcn.00435c40
mov edx, dword [edi + 0x3c]
mov ecx, ebx
call fcn.00452c30
mov edx, dword [edi + 0x48]
mov ecx, ebx
call fcn.004350a0
mov edx, dword [edi + 0x4c]
mov ecx, ebx
call fcn.004350a0
mov edx, edi
mov ecx, ebx
call fcn.00407740
jmp 0x456f7e
mov dword [esp + 0x34], 0
mov dword [esp + 0x18], 0
jmp 0x456c6d
mov eax, dword [edi + 0x14]
mov dword [esp + 0x10], eax
test eax, eax
je 0x456f82
cmp dword [eax], 0
mov edi, dword [eax + 8]
mov dword [esp + 0x24], 0
jle 0x456e89
mov esi, eax
lea esp, [esp]
mov edx, dword [edi]
mov ecx, ebx
call fcn.004350a0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x456df3
test ebx, ebx
je 0x456dea
cmp dword [ebx + 0x200], 0
je 0x456dc4
cmp ecx, dword [ebx + 0x10c]
jb 0x456dae
cmp ecx, dword [ebx + 0x110]
jae 0x456dae
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x456df3
push ecx
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x456df3
cmp ecx, dword [ebx + 0x10c]
jb 0x456dea
cmp ecx, dword [ebx + 0x110]
jae 0x456dea
mov eax, dword [ebx + 0x108]
mov dword [ecx], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], ecx
jmp 0x456df3
push ecx
call fcn.004076a0
add esp, 4
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x456e6d
test ebx, ebx
je 0x456e64
cmp dword [ebx + 0x200], 0
je 0x456e3e
cmp ecx, dword [ebx + 0x10c]
jb 0x456e28
cmp ecx, dword [ebx + 0x110]
jae 0x456e28
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x456e6d
push ecx
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x456e6d
cmp ecx, dword [ebx + 0x10c]
jb 0x456e64
cmp ecx, dword [ebx + 0x110]
jae 0x456e64
mov eax, dword [ebx + 0x108]
mov dword [ecx], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], ecx
jmp 0x456e6d
push ecx
call fcn.004076a0
add esp, 4
mov eax, dword [esp + 0x24]
add edi, 0x18
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esi]
jl 0x456d70
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x456f07
test ebx, ebx
je 0x456efa
cmp dword [ebx + 0x200], 0
je 0x456ed4
cmp ecx, dword [ebx + 0x10c]
jb 0x456ebe
cmp ecx, dword [ebx + 0x110]
jae 0x456ebe
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x456f03
push ecx
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x456f03
cmp ecx, dword [ebx + 0x10c]
jb 0x456efa
cmp ecx, dword [ebx + 0x110]
jae 0x456efa
mov eax, dword [ebx + 0x108]
mov dword [ecx], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], ecx
jmp 0x456f03
push ecx
call fcn.004076a0
add esp, 4
mov eax, dword [esp + 0x10]
test ebx, ebx
je 0x456f75
cmp dword [ebx + 0x200], 0
je 0x456f4b
cmp eax, dword [ebx + 0x10c]
jb 0x456f35
cmp eax, dword [ebx + 0x110]
jae 0x456f35
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x456f7e
push eax
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x456f7e
cmp eax, dword [ebx + 0x10c]
jb 0x456f75
cmp eax, dword [ebx + 0x110]
jae 0x456f75
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x108]
mov dword [ecx], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], ecx
jmp 0x456f7e
push eax
call fcn.004076a0
add esp, 4
mov edi, dword [esp + 0x1c]
test dword [edi + 4], 0x8000
jne 0x456ffe
test ebx, ebx
je 0x456ff5
cmp dword [ebx + 0x200], 0
je 0x456fcf
cmp edi, dword [ebx + 0x10c]
jb 0x456fb9
cmp edi, dword [ebx + 0x110]
jae 0x456fb9
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x456ffe
push edi
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x456ffe
cmp edi, dword [ebx + 0x10c]
jb 0x456ff5
cmp edi, dword [ebx + 0x110]
jae 0x456ff5
mov eax, dword [ebx + 0x108]
mov dword [edi], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], edi
jmp 0x456ffe
push edi
call fcn.004076a0
add esp, 4
mov eax, dword [esp + 0x28]
mov edi, dword [eax + 0x4c]
mov dword [eax + 0x48], 0
mov dword [esp + 0x1c], edi
test edi, edi
je 0x45737e
test dword [edi + 4], 0x4000
jne 0x457302
mov edx, dword [edi + 0xc]
mov ecx, ebx
call fcn.004350a0
mov edx, dword [edi + 0x10]
mov ecx, ebx
call fcn.004350a0
test dword [edi + 4], 0x10000
je 0x45704c
mov edx, dword [edi + 8]
mov ecx, ebx
call fcn.00407740
test dword [edi + 4], 0x800
je 0x4570c7
mov edi, dword [edi + 0x14]
test edi, edi
je 0x4572fe
mov edx, dword [edi]
mov ecx, ebx
call fcn.00435c40
mov edx, dword [edi + 0x28]
mov ecx, ebx
call fcn.00441b00
mov edx, dword [edi + 0x2c]
mov ecx, ebx
call fcn.004350a0
mov edx, dword [edi + 0x30]
mov ecx, ebx
call fcn.00435c40
mov edx, dword [edi + 0x34]
mov ecx, ebx
call fcn.004350a0
mov edx, dword [edi + 0x38]
mov ecx, ebx
call fcn.00435c40
mov edx, dword [edi + 0x3c]
mov ecx, ebx
call fcn.00452c30
mov edx, dword [edi + 0x48]
mov ecx, ebx
call fcn.004350a0
mov edx, dword [edi + 0x4c]
mov ecx, ebx
call fcn.004350a0
mov edx, edi
mov ecx, ebx
call fcn.00407740
jmp 0x4572fe
mov eax, dword [edi + 0x14]
mov dword [esp + 0x10], eax
test eax, eax
je 0x457302
cmp dword [eax], 0
mov edi, dword [eax + 8]
mov dword [esp + 0x24], 0
jle 0x457209
mov esi, eax
lea esp, [esp]
mov edx, dword [edi]
mov ecx, ebx
call fcn.004350a0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x457173
test ebx, ebx
je 0x45716a
cmp dword [ebx + 0x200], 0
je 0x457144
cmp ecx, dword [ebx + 0x10c]
jb 0x45712e
cmp ecx, dword [ebx + 0x110]
jae 0x45712e
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x457173
push ecx
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x457173
cmp ecx, dword [ebx + 0x10c]
jb 0x45716a
cmp ecx, dword [ebx + 0x110]
jae 0x45716a
mov eax, dword [ebx + 0x108]
mov dword [ecx], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], ecx
jmp 0x457173
push ecx
call fcn.004076a0
add esp, 4
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x4571ed
test ebx, ebx
je 0x4571e4
cmp dword [ebx + 0x200], 0
je 0x4571be
cmp ecx, dword [ebx + 0x10c]
jb 0x4571a8
cmp ecx, dword [ebx + 0x110]
jae 0x4571a8
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x4571ed
push ecx
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x4571ed
cmp ecx, dword [ebx + 0x10c]
jb 0x4571e4
cmp ecx, dword [ebx + 0x110]
jae 0x4571e4
mov eax, dword [ebx + 0x108]
mov dword [ecx], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], ecx
jmp 0x4571ed
push ecx
call fcn.004076a0
add esp, 4
mov eax, dword [esp + 0x24]
add edi, 0x18
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esi]
jl 0x4570f0
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x457287
test ebx, ebx
je 0x45727a
cmp dword [ebx + 0x200], 0
je 0x457254
cmp ecx, dword [ebx + 0x10c]
jb 0x45723e
cmp ecx, dword [ebx + 0x110]
jae 0x45723e
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x457283
push ecx
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x457283
cmp ecx, dword [ebx + 0x10c]
jb 0x45727a
cmp ecx, dword [ebx + 0x110]
jae 0x45727a
mov eax, dword [ebx + 0x108]
mov dword [ecx], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], ecx
jmp 0x457283
push ecx
call fcn.004076a0
add esp, 4
mov eax, dword [esp + 0x10]
test ebx, ebx
je 0x4572f5
cmp dword [ebx + 0x200], 0
je 0x4572cb
cmp eax, dword [ebx + 0x10c]
jb 0x4572b5
cmp eax, dword [ebx + 0x110]
jae 0x4572b5
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x4572fe
push eax
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x4572fe
cmp eax, dword [ebx + 0x10c]
jb 0x4572f5
cmp eax, dword [ebx + 0x110]
jae 0x4572f5
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x108]
mov dword [ecx], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], ecx
jmp 0x4572fe
push eax
call fcn.004076a0
add esp, 4
mov edi, dword [esp + 0x1c]
test dword [edi + 4], 0x8000
jne 0x45737e
test ebx, ebx
je 0x457375
cmp dword [ebx + 0x200], 0
je 0x45734f
cmp edi, dword [ebx + 0x10c]
jb 0x457339
cmp edi, dword [ebx + 0x110]
jae 0x457339
mov eax, dword [ebx + 0x200]
movzx ecx, word [ebx + 0xf0]
add dword [eax], ecx
jmp 0x45737e
push edi
call dword [0x510f4c]
mov ecx, eax
add esp, 4
mov eax, dword [ebx + 0x200]
add dword [eax], ecx
jmp 0x45737e
cmp edi, dword [ebx + 0x10c]
jb 0x457375
cmp edi, dword [ebx + 0x110]
jae 0x457375
mov eax, dword [ebx + 0x108]
mov dword [edi], eax
dec dword [ebx + 0xf4]
mov dword [ebx + 0x108], edi
jmp 0x45737e
push edi
call fcn.004076a0
add esp, 4
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov word [esp + 0x8c], 0xa
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [eax + 0x4c], 0
inc dword [edi + 0x4c]
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x90], ecx
mov word [esp + 0x7c], 0xa
mov dword [esp + 0x84], 0
lea eax, [ecx + 1]
mov dword [esp + 0x88], 0
lea edx, [eax + 1]
mov dword [esp + 0x44], eax
lea eax, [edx + 1]
mov dword [esp + 0x80], edx
mov dword [esp + 0x10], eax
add eax, 2
mov dword [edi + 0x4c], eax
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x24], edi
cmp eax, edi
jg 0x457479
test eax, eax
je 0x457417
add eax, eax
jmp 0x45741c
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x4574f3
mov eax, dword [esi]
test eax, eax
je 0x457459
cmp edi, dword [eax + 0x10c]
jb 0x457459
cmp edi, dword [eax + 0x110]
jae 0x457459
movzx ecx, word [eax + 0xf0]
jmp 0x457465
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mov edi, dword [esp + 0x24]
mul ecx
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x1c]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x18]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0x1e8]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x8c]
push eax
call fcn.0045a520
mov ecx, dword [esi + 0x1c]
add esp, 4
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x45755b
test eax, eax
je 0x4574fd
add eax, eax
jmp 0x457502
mov dword [esp + 0x24], 1
jmp 0x4574ad
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x45758f
mov eax, dword [esi]
test eax, eax
je 0x45753b
cmp edi, dword [eax + 0x10c]
jb 0x45753b
cmp edi, dword [eax + 0x110]
jae 0x45753b
movzx ecx, word [eax + 0xf0]
jmp 0x457547
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x44]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x457603
test eax, eax
je 0x4575a5
add eax, eax
jmp 0x4575aa
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x457637
mov eax, dword [esi]
test eax, eax
je 0x4575e3
cmp edi, dword [eax + 0x10c]
jb 0x4575e3
cmp edi, dword [eax + 0x110]
jae 0x4575e3
movzx ecx, word [eax + 0xf0]
jmp 0x4575ef
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x28]
mov edx, ecx
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x34]
mov edi, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 0xc], 0
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0x1e8]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x7c]
push eax
call fcn.0045a520
mov eax, dword [esp + 0x2c]
add esp, 4
mov dword [eax + 0xc], esi
mov esi, dword [esp + 0x2c]
mov dword [eax + 8], edi
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x4576f9
test eax, eax
je 0x45769b
add eax, eax
jmp 0x4576a0
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x45772d
mov eax, dword [esi]
test eax, eax
je 0x4576d9
cmp edi, dword [eax + 0x10c]
jb 0x4576d9
cmp edi, dword [eax + 0x110]
jae 0x4576d9
movzx ecx, word [eax + 0xf0]
jmp 0x4576e5
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x4577a1
test eax, eax
je 0x457743
add eax, eax
jmp 0x457748
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x4577d5
mov eax, dword [esi]
test eax, eax
je 0x457781
cmp edi, dword [eax + 0x10c]
jb 0x457781
cmp edi, dword [eax + 0x110]
jae 0x457781
movzx ecx, word [eax + 0xf0]
jmp 0x45778d
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x54]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x60]
inc eax
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
push 0xfffffffffffffff0
push dword [esp + 0x40]
push edi
push eax
push dword [esp + 0x7c]
lea eax, [esp + 0xa4]
push eax
call fcn.00455ee0
mov dword [esp + 0x78], eax
add esp, 0x1c
mov eax, dword [esp + 0x50]
cmp eax, 0x71
je 0x457818
cmp eax, 0x70
jne 0x45784e
push dword [esp + 0x54]
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x24]
push 0xffffffffffffffef
push dword [esp + 0x40]
push edi
push dword [esp + 0x58]
push dword [esp + 0x7c]
push eax
call fcn.00455ee0
mov dword [esp + 0x88], eax
add esp, 0x1c
mov eax, dword [esp + 0x50]
cmp eax, 0x72
je 0x457b27
cmp eax, 0x73
je 0x457b27
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x2c], edx
cmp eax, edx
jg 0x4578d8
test eax, eax
je 0x457876
add eax, eax
jmp 0x45787b
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x457922
mov ecx, dword [esi]
test ecx, ecx
je 0x4578b8
cmp edi, dword [ecx + 0x10c]
jb 0x4578b8
cmp edi, dword [ecx + 0x110]
jae 0x4578b8
movzx ecx, word [ecx + 0xf0]
jmp 0x4578c4
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
shr edx, 4
mov dword [esi + 0x20], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x54]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x45798a
test eax, eax
je 0x45792c
add eax, eax
jmp 0x457931
mov dword [esp + 0x2c], 1
jmp 0x45790c
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x4579be
mov ecx, dword [esi]
test ecx, ecx
je 0x45796a
cmp edi, dword [ecx + 0x10c]
jb 0x45796a
cmp edi, dword [ecx + 0x110]
jae 0x45796a
movzx ecx, word [ecx + 0xf0]
jmp 0x457976
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x6c]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x457a32
test eax, eax
je 0x4579d4
add eax, eax
jmp 0x4579d9
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x457a66
mov ecx, dword [esi]
test ecx, ecx
je 0x457a12
cmp edi, dword [ecx + 0x10c]
jb 0x457a12
cmp edi, dword [ecx + 0x110]
jae 0x457a12
movzx ecx, word [ecx + 0xf0]
jmp 0x457a1e
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x457ada
test eax, eax
je 0x457a7c
add eax, eax
jmp 0x457a81
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x457b0e
mov ecx, dword [esi]
test ecx, ecx
je 0x457aba
cmp edi, dword [ecx + 0x10c]
jb 0x457aba
cmp edi, dword [ecx + 0x110]
jae 0x457aba
movzx ecx, word [ecx + 0xf0]
jmp 0x457ac6
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + 0x20]
add dword [edx + 0x20], eax
mov eax, dword [ecx + 0x24]
adc dword [edx + 0x24], eax
jmp 0x457bdb
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x2c], edx
cmp eax, edx
jg 0x457b9f
test eax, eax
je 0x457b3d
add eax, eax
jmp 0x457b42
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x457c0f
mov ecx, dword [esi]
test ecx, ecx
je 0x457b7f
cmp edi, dword [ecx + 0x10c]
jb 0x457b7f
cmp edi, dword [ecx + 0x110]
jae 0x457b7f
movzx ecx, word [ecx + 0xf0]
jmp 0x457b8b
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
shr edx, 4
mov dword [esi + 0x20], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x54]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x50], 0x73
jne 0x457c19
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
cmp dword [edx + 0x24], ecx
jb 0x457ec8
ja 0x457c04
cmp dword [edx + 0x20], eax
jbe 0x457ec8
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
jmp 0x457ec8
mov dword [esp + 0x2c], 1
jmp 0x457bd3
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x38], edx
cmp eax, edx
jg 0x457c91
test eax, eax
je 0x457c2f
add eax, eax
jmp 0x457c34
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x457cdb
mov ecx, dword [esi]
test ecx, ecx
je 0x457c71
cmp edi, dword [ecx + 0x10c]
jb 0x457c71
cmp edi, dword [ecx + 0x110]
jae 0x457c71
movzx ecx, word [ecx + 0xf0]
jmp 0x457c7d
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
shr edx, 4
mov dword [esi + 0x20], edx
mov edx, dword [esp + 0x38]
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x54]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x457d43
test eax, eax
je 0x457ce5
add eax, eax
jmp 0x457cea
mov dword [esp + 0x38], 1
jmp 0x457cc5
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x457d78
mov ecx, dword [esi]
test ecx, ecx
je 0x457d23
cmp edi, dword [ecx + 0x10c]
jb 0x457d23
cmp edi, dword [ecx + 0x110]
jae 0x457d23
movzx ecx, word [ecx + 0xf0]
jmp 0x457d2f
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x10]
inc edx
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x457dec
test eax, eax
je 0x457d8e
add eax, eax
jmp 0x457d93
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x457e20
mov ecx, dword [esi]
test ecx, ecx
je 0x457dcc
cmp edi, dword [ecx + 0x10c]
jb 0x457dcc
cmp edi, dword [ecx + 0x110]
jae 0x457dcc
movzx ecx, word [ecx + 0xf0]
jmp 0x457dd8
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jg 0x457e94
test eax, eax
je 0x457e36
add eax, eax
jmp 0x457e3b
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x457ec8
mov ecx, dword [esi]
test ecx, ecx
je 0x457e74
cmp edi, dword [ecx + 0x10c]
jb 0x457e74
cmp edi, dword [ecx + 0x110]
jae 0x457e74
movzx ecx, word [ecx + 0xf0]
jmp 0x457e80
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
mov dword [esi + 0x20], edx
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x38]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x1c], edx
cmp eax, edx
jg 0x457f40
test eax, eax
je 0x457ede
add eax, eax
jmp 0x457ee3
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi]
shl eax, 2
push eax
call fcn.00407a10
mov edi, eax
add esp, 4
test edi, edi
je 0x458060
mov ecx, dword [esi]
test ecx, ecx
je 0x457f20
cmp edi, dword [ecx + 0x10c]
jb 0x457f20
cmp edi, dword [ecx + 0x110]
jae 0x457f20
movzx ecx, word [ecx + 0xf0]
jmp 0x457f2c
push edi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [esi + 4], edi
mul ecx
shr edx, 4
mov dword [esi + 0x20], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x10]
inc edx
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x457f88
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x457fbc
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x457fcf
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x458003
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x458016
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x45804a
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x64]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x50]
cmp eax, 0x71
jne 0x45806d
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jmp 0x45816b
mov dword [esp + 0x1c], 1
jmp 0x457f75
cmp eax, 0x73
jne 0x458084
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x1c], eax
jmp 0x45816b
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x18], edx
cmp dword [esi + 0x20], edx
jg 0x4580a9
mov ecx, esi
call fcn.004243f0
test eax, eax
je 0x4580a5
mov dword [esp + 0x18], 1
jmp 0x4580dd
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x4580f0
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x458124
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x458137
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x45816b
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x64]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x50]
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x14], edi
cmp eax, 0x71
je 0x458180
cmp eax, 0x70
jne 0x4581c4
cmp dword [esi + 0x20], edi
jg 0x458190
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x4581c4
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x6c]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x4581d7
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x45820b
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x45821e
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x458252
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x458265
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x458299
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x64]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
test eax, eax
js 0x4582b2
mov edx, dword [esi + 0x1c]
cmp edx, eax
jbe 0x4582b2
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x4582c5
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x4582f9
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x44]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x45830c
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x458340
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x458353
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x458387
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x78]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x45839a
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x4583ce
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x70]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x4583e1
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x458415
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x458428
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x45845c
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
or ecx, 0xffffffff
sub ecx, dword [esp + 0x64]
js 0x458472
mov edx, dword [esi + 0x28]
test edx, edx
je 0x458472
mov eax, dword [esi + 0x1c]
mov dword [edx + ecx*4], eax
push 0xfffffffffffffff1
push dword [esp + 0x40]
mov edx, 0x23
mov ecx, esi
push 0
push 0
push 0
call fcn.004245f0
add esp, 0x14
mov edx, 0x24
mov ecx, esi
push 0xfffffffffffffff0
push dword [esp + 0x64]
push dword [esp + 0x38]
push dword [esp + 0x90]
push dword [esp + 0xa4]
call fcn.004245f0
mov ecx, dword [esi + 4]
add esp, 0x14
test ecx, ecx
je 0x4584c6
mov eax, dword [esi + 0x1c]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 1
mov edi, dword [esi + 0x1c]
cmp dword [esi + 0x20], edi
jg 0x4584d9
mov ecx, esi
call fcn.004243f0
test eax, eax
jne 0x45850d
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x1c]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x14]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
or edx, 0xffffffff
sub edx, dword [esp + 0x54]
js 0x458523
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x458523
mov eax, dword [esi + 0x1c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x68]
cmp byte [eax], 5
jne 0x458559
mov eax, dword [esp + 0x58]
mov ecx, eax
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x458549
lea esp, [esp]
mov ecx, eax
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x458540
push dword [ecx]
mov ecx, dword [esp + 0x24]
xor edx, edx
call fcn.00454b20
add esp, 4
mov edi, dword [esp + 0x28]
mov esi, dword [edi + 0x3c]
test esi, esi
je 0x458576
mov edx, esi
mov ecx, ebx
call fcn.004529d0
mov edx, esi
mov ecx, ebx
call fcn.00407740
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x20]
push 0
push dword [esp + 0x38]
mov dword [edi + 0x3c], edx
push dword [esp + 0x7c]
movzx edx, byte [edi + 4]
call fcn.00454070
mov ecx, dword [esp + 0xa8]
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004c515f
mov esp, ebp
pop ebp
ret