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

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x4c]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x3a18]
add ecx, 0x1312d00
mov dword [esp + 0x10], eax
mov eax, dword [eax + 0x3a1c]
mov dword [esp + 0x28], ecx
mov ecx, 0
adc eax, ecx
cmp byte [edi + 0x4c0], cl
lea esi, [edi + 0x10]
mov dword [esp + 0x2c], eax
jne 0x456dfa
cmp byte [edi + 0x6c0], cl
jne 0x456dfa
cmp byte [edi + 0x8c0], cl
jne 0x456dfa
cmp byte [edi + 0xac0], cl
mov dword [esp + 0x14], ecx
je 0x456e02
mov dword [esp + 0x14], 1
cmp dword [edi + 0x60], ecx
mov dword [esp + 0x18], ecx
jbe 0x456e3b
lea edx, [edi + 0x64]
mov ebp, 0x3e8
mov eax, dword [edx]
mov ebx, dword [eax + 8]
mov dword [eax + 0x48], 0x20
mov dword [eax + 0x40], 1
mov dword [eax + 0x44], ebp
mov eax, dword [ebx + 0x10]
add dword [esp + 0x18], eax
add ecx, 1
add edx, 4
cmp ecx, dword [edi + 0x60]
jb 0x456e13
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 8], 0
je 0x456e5b
push 0xc00
xor eax, eax
mov ecx, 0x4824
mov edx, edi
call fcn.00456ca0
add esp, 4
push 0x5960d8
mov eax, esi
call fcn.00456900
add esp, 4
or eax, 0xffffffff
mov ecx, esi
call fcn.0044f770
or eax, 0xffffffff
mov ecx, esi
call fcn.0044f770
mov ecx, dword [edi + 0x60]
mov edx, dword [esp + 0x14]
lea eax, [edx + ecx + 3]
mov ecx, esi
call fcn.0044f770
mov eax, dword [esi + 8]
mov byte [eax], 1
mov edi, 1
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x456f00
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x456efd
mov edx, dword [esi + 0x18]
test edx, edx
je 0x456ecd
cmp dword [esi + 0x48], 0
jne 0x456ecd
sub eax, ecx
push eax
push ecx
mov ecx, dword [esi + 0x10]
push ecx
call edx
add esp, 0xc
test eax, eax
jge 0x456ecd
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x456eef
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 2
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x456f6b
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x456f68
mov edx, dword [esi + 0x18]
test edx, edx
je 0x456f38
cmp dword [esi + 0x48], 0
jne 0x456f38
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x456f38
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x456f5a
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
push 0
push 0
mov eax, edi
mov ecx, esi
call fcn.0044f510
mov dword [esp + 0x38], eax
push 0
push 0
mov eax, edi
mov ecx, esi
mov dword [esp + 0x44], edx
call fcn.0044f510
mov edi, eax
push 0x5960e8
mov eax, esi
mov dword [esp + 0x58], edx
call fcn.00456900
add esp, 0x14
mov eax, 0x18
mov ecx, esi
call fcn.0044f770
xor eax, eax
mov ecx, esi
call fcn.0044f770
push 0x5961b8
mov eax, esi
call fcn.00456900
mov eax, dword [esp + 0x54]
add esp, 4
mov ecx, esi
call fcn.0044f770
mov eax, dword [esp + 0x54]
mov ecx, esi
call fcn.0044f770
mov eax, 0xd53e8000
mov ecx, esi
call fcn.0044f770
mov eax, 0x19db1de
mov ecx, esi
call fcn.0044f770
mov eax, dword [ebx + 0x3a10]
mov ebx, dword [ebx + 0x3a14]
mov ecx, esi
call fcn.0044f770
mov eax, ebx
mov ecx, esi
call fcn.0044f770
mov ebx, dword [esp + 0x28]
mov eax, ebx
mov ecx, esi
call fcn.0044f770
mov ebp, dword [esp + 0x2c]
mov eax, ebp
mov ecx, esi
call fcn.0044f770
mov eax, ebx
mov ecx, esi
call fcn.0044f770
mov eax, ebp
mov ecx, esi
call fcn.0044f770
mov edx, dword [esi + 8]
mov byte [edx], 0xd0
mov ebx, 1
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4570ac
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x4570a9
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457079
cmp dword [esi + 0x48], 0
jne 0x457079
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457079
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x45709b
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 7
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457117
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457114
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4570e4
cmp dword [esi + 0x48], 0
jne 0x4570e4
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x4570e4
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457106
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457182
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x45717f
mov edx, dword [esi + 0x18]
test edx, edx
je 0x45714f
cmp dword [esi + 0x48], 0
jne 0x45714f
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x45714f
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457171
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4571ed
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x4571ea
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4571ba
cmp dword [esi + 0x48], 0
jne 0x4571ba
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x4571ba
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4571dc
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457258
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457255
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457225
cmp dword [esi + 0x48], 0
jne 0x457225
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457225
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457247
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4572c3
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x4572c0
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457290
cmp dword [esi + 0x48], 0
jne 0x457290
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457290
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4572b2
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45732e
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x45732b
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4572fb
cmp dword [esi + 0x48], 0
jne 0x4572fb
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x4572fb
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x45731d
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457399
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457396
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457366
cmp dword [esi + 0x48], 0
jne 0x457366
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457366
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457388
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov ebx, dword [esp + 0x10]
xor eax, eax
cmp dword [ebx + 8], eax
mov ecx, esi
setne al
call fcn.0044f770
mov eax, dword [ebx + 4]
mov ecx, esi
call fcn.0044f770
mov eax, dword [ebx + 4]
mov ecx, esi
call fcn.0044f770
mov eax, dword [esp + 0x18]
mov ecx, esi
call fcn.0044f770
push 0
push 0
mov eax, 1
mov ecx, esi
call fcn.0044f510
mov ebp, edx
mov ebx, eax
mov eax, dword [esp + 0x4c]
mov edx, edi
add edx, 0x10
adc eax, 0
push eax
push edx
xor eax, eax
mov ecx, esi
call fcn.0044f510
mov eax, ebx
sub eax, edi
mov edi, ebp
sbb edi, dword [esp + 0x54]
mov ecx, esi
call fcn.0044f770
mov eax, edi
mov ecx, esi
call fcn.0044f770
push ebp
push ebx
xor eax, eax
mov ecx, esi
call fcn.0044f510
push 0
push 0
mov eax, 1
mov ecx, esi
call fcn.0044f510
mov edi, eax
push 0x596188
mov eax, esi
mov dword [esp + 0x78], edx
call fcn.00456900
add esp, 0x24
mov eax, 0x18
mov ecx, esi
call fcn.0044f770
xor eax, eax
mov ecx, esi
call fcn.0044f770
push 0x596198
mov eax, esi
call fcn.00456900
mov ecx, dword [esi + 8]
mov byte [ecx], 6
add dword [esi + 8], 1
mov eax, dword [esi + 8]
add esp, 4
cmp eax, dword [esi + 0xc]
jb 0x4574d0
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x4574cd
mov edx, dword [esi + 0x18]
test edx, edx
je 0x45749d
cmp dword [esi + 0x48], 0
jne 0x45749d
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x45749d
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4574bf
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
mov ebx, 1
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457540
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x45753d
mov edx, dword [esi + 0x18]
test edx, edx
je 0x45750d
cmp dword [esi + 0x48], 0
jne 0x45750d
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x45750d
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x45752f
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4575ab
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x4575a8
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457578
cmp dword [esi + 0x48], 0
jne 0x457578
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457578
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x45759a
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457616
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457613
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4575e3
cmp dword [esi + 0x48], 0
jne 0x4575e3
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x4575e3
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457605
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457681
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x45767e
mov edx, dword [esi + 0x18]
test edx, edx
je 0x45764e
cmp dword [esi + 0x48], 0
jne 0x45764e
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x45764e
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457670
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4576ec
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x4576e9
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4576b9
cmp dword [esi + 0x48], 0
jne 0x4576b9
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x4576b9
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4576db
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
push 0
push 0
mov eax, ebx
mov ecx, esi
call fcn.0044f510
mov ebp, edx
mov ebx, eax
mov eax, dword [esp + 0x5c]
mov edx, edi
add edx, 0x10
adc eax, 0
push eax
push edx
xor eax, eax
mov ecx, esi
call fcn.0044f510
mov eax, ebx
sub eax, edi
mov edi, ebp
sbb edi, dword [esp + 0x64]
mov ecx, esi
call fcn.0044f770
mov eax, edi
mov ecx, esi
call fcn.0044f770
push ebp
push ebx
xor eax, eax
mov ecx, esi
call fcn.0044f510
add esp, 0x18
cmp dword [esp + 0x14], 0
je 0x457a05
push 0
mov ebp, 1
push 0
mov eax, ebp
mov ecx, esi
call fcn.0044f510
mov dword [esp + 0x28], eax
push 0x596148
mov eax, esi
mov dword [esp + 0x30], edx
call fcn.00456900
add esp, 0xc
mov eax, 0x18
mov ecx, esi
call fcn.0044f770
xor eax, eax
mov ecx, esi
call fcn.0044f770
mov edi, dword [esp + 0x4c]
cmp byte [edi + 0x4c0], 0
lea eax, [edi + 0x4c0]
je 0x4577ce
lea edx, [eax + 1]
jmp 0x4577a0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4577a0
mov ecx, dword [esi + 8]
sub eax, edx
lea ebx, [eax + eax + 2]
mov byte [ecx], bl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4577c4
call fcn.0044f3f0
mov edx, dword [esi + 8]
shr ebx, 8
mov byte [edx], bl
jmp 0x4577ea
mov eax, dword [esi + 8]
mov byte [eax], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4577e4
call fcn.0044f3f0
mov ecx, dword [esi + 8]
mov byte [ecx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4577fa
call fcn.0044f3f0
cmp byte [edi + 0x6c0], 0
lea eax, [edi + 0x6c0]
mov dword [esp + 0x50], eax
je 0x45783e
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x457810
sub eax, edx
mov edx, dword [esi + 8]
lea ebx, [eax + eax + 2]
mov byte [edx], bl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457834
call fcn.0044f3f0
mov eax, dword [esi + 8]
shr ebx, 8
mov byte [eax], bl
jmp 0x45785a
mov ecx, dword [esi + 8]
mov byte [ecx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457854
call fcn.0044f3f0
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45786a
call fcn.0044f3f0
cmp byte [edi + 0x8c0], 0
lea eax, [edi + 0x8c0]
mov dword [esp + 0x28], eax
je 0x4578ae
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x457880
sub eax, edx
lea ebx, [eax + eax + 2]
mov eax, dword [esi + 8]
mov byte [eax], bl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4578a4
call fcn.0044f3f0
mov ecx, dword [esi + 8]
shr ebx, 8
mov byte [ecx], bl
jmp 0x4578ca
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4578c4
call fcn.0044f3f0
mov eax, dword [esi + 8]
mov byte [eax], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4578da
call fcn.0044f3f0
add edi, 0xac0
cmp byte [edi], 0
je 0x45791e
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4578f0
mov ecx, dword [esi + 8]
sub eax, edx
lea ebx, [eax + eax + 2]
mov byte [ecx], bl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457914
call fcn.0044f3f0
mov edx, dword [esi + 8]
shr ebx, 8
mov byte [edx], bl
jmp 0x45793a
mov eax, dword [esi + 8]
mov byte [eax], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457934
call fcn.0044f3f0
mov ecx, dword [esi + 8]
mov byte [ecx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45794a
call fcn.0044f3f0
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457960
call fcn.0044f3f0
mov eax, dword [esi + 8]
mov byte [eax], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457976
call fcn.0044f3f0
mov eax, dword [esp + 0x4c]
add eax, 0x4c0
cmp byte [eax], 0
je 0x457989
call fcn.00456b40
mov eax, dword [esp + 0x50]
cmp byte [eax], 0
je 0x457997
call fcn.00456b40
mov eax, dword [esp + 0x28]
cmp byte [eax], 0
je 0x4579a5
call fcn.00456b40
cmp byte [edi], 0
je 0x4579b1
mov eax, edi
call fcn.00456b40
push 0
push 0
mov eax, ebp
mov ecx, esi
call fcn.0044f510
mov edi, dword [esp + 0x28]
mov ebp, edx
mov edx, dword [esp + 0x2c]
mov ecx, edi
add ecx, 0x10
adc edx, 0
push edx
mov ebx, eax
push ecx
xor eax, eax
mov ecx, esi
call fcn.0044f510
mov eax, ebx
sub eax, edi
mov edi, ebp
sbb edi, dword [esp + 0x34]
mov ecx, esi
call fcn.0044f770
mov eax, edi
mov ecx, esi
call fcn.0044f770
push ebp
push ebx
xor eax, eax
mov ecx, esi
call fcn.0044f510
add esp, 0x18
mov edi, dword [esp + 0x4c]
xor eax, eax
cmp dword [edi + 0x60], eax
mov ebp, 1
jbe 0x45863b
lea esp, [esp]
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + eax*4 + 0x64]
mov ebx, dword [edx + 8]
mov edx, dword [esp + 0x10]
lea ecx, [eax + 1]
imul eax, eax, 0x70
add eax, edx
xor edi, edi
mov dword [eax + 0x210], ecx
mov byte [eax + 0x214], 0
mov eax, dword [ebx + 0xec]
cmp eax, ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], ecx
jne 0x457a7d
cmp dword [ebx + 0xf0], 0x1100b
jne 0x457a7d
mov edi, 0x5961c8
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], 8
sub eax, ebp
je 0x457a95
mov eax, dword [ebx + 0x28]
add eax, 0x33
mov dword [esp + 0x50], eax
mov dword [esp + 0x14], 0
jmp 0x457aa5
mov eax, dword [esp + 0x18]
mov dword [esp + 0x50], 0x12
mov dword [esp + 0x14], eax
push 0
push 0
mov eax, ebp
mov ecx, esi
call fcn.0044f510
mov dword [esp + 0x48], eax
push 0x5960f8
mov eax, esi
mov dword [esp + 0x50], edx
call fcn.00456900
mov ecx, dword [esi + 8]
mov byte [ecx], 0x18
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
add esp, 0xc
cmp eax, dword [esi + 0xc]
jb 0x457b34
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457b31
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457b01
cmp dword [esi + 0x48], 0
jne 0x457b01
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457b01
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457b23
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457b9f
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457b9c
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457b6c
cmp dword [esi + 0x48], 0
jne 0x457b6c
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457b6c
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457b8e
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457c0a
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457c07
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457bd7
cmp dword [esi + 0x48], 0
jne 0x457bd7
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457bd7
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457bf9
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457c75
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457c72
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457c42
cmp dword [esi + 0x48], 0
jne 0x457c42
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457c42
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457c64
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457ce0
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457cdd
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457cad
cmp dword [esi + 0x48], 0
jne 0x457cad
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457cad
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457ccf
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457d4b
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457d48
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457d18
cmp dword [esi + 0x48], 0
jne 0x457d18
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457d18
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457d3a
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457db6
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457db3
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457d83
cmp dword [esi + 0x48], 0
jne 0x457d83
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457d83
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457da5
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457e21
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457e1e
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457dee
cmp dword [esi + 0x48], 0
jne 0x457dee
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457dee
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457e10
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
cmp dword [ebx + 0xec], ebp
mov eax, esi
jne 0x457e4a
push 0x596108
call fcn.00456900
add esp, 4
test edi, edi
je 0x457e57
cmp dword [esp + 0x18], 0
je 0x457e57
push 0x596118
jmp 0x457e5c
push 0x596128
call fcn.00456900
add esp, 4
push 0x596138
mov eax, esi
call fcn.00456900
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
add esp, 4
cmp eax, dword [esi + 0xc]
jb 0x457ed1
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457ece
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457e9e
cmp dword [esi + 0x48], 0
jne 0x457e9e
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457e9e
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457ec0
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457f3c
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457f39
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457f09
cmp dword [esi + 0x48], 0
jne 0x457f09
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457f09
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457f2b
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x457fa7
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x457fa4
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457f74
cmp dword [esi + 0x48], 0
jne 0x457f74
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457f74
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x457f96
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458012
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x45800f
mov edx, dword [esi + 0x18]
test edx, edx
je 0x457fdf
cmp dword [esi + 0x48], 0
jne 0x457fdf
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x457fdf
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x458001
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45807d
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x45807a
mov edx, dword [esi + 0x18]
test edx, edx
je 0x45804a
cmp dword [esi + 0x48], 0
jne 0x45804a
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x45804a
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x45806c
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4580e8
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x4580e5
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4580b5
cmp dword [esi + 0x48], 0
jne 0x4580b5
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x4580b5
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4580d7
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458153
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x458150
mov edx, dword [esi + 0x18]
test edx, edx
je 0x458120
cmp dword [esi + 0x48], 0
jne 0x458120
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x458120
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x458142
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4581be
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x4581bb
mov edx, dword [esi + 0x18]
test edx, edx
je 0x45818b
cmp dword [esi + 0x48], 0
jne 0x45818b
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x45818b
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4581ad
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
push 0
push 0
mov eax, ebp
mov ecx, esi
call fcn.0044f510
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x58]
mov dword [esp + 0x44], edx
mov edx, dword [esi + 8]
mov byte [edx], al
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
add esp, 8
cmp eax, dword [esi + 0xc]
jb 0x458244
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x458241
mov edx, dword [esi + 0x18]
test edx, edx
je 0x458211
cmp dword [esi + 0x48], 0
jne 0x458211
sub eax, ecx
push eax
push ecx
mov ecx, dword [esi + 0x10]
push ecx
call edx
add esp, 0xc
test eax, eax
jge 0x458211
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x458233
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esp + 0x50]
mov eax, dword [esi + 8]
shr edx, 8
mov byte [eax], dl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4582b5
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x4582b2
mov edx, dword [esi + 0x18]
test edx, edx
je 0x458282
cmp dword [esi + 0x48], 0
jne 0x458282
sub eax, ecx
push eax
push ecx
mov ecx, dword [esi + 0x10]
push ecx
call edx
add esp, 0xc
test eax, eax
jge 0x458282
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4582a4
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esp + 0x50]
mov eax, dword [esi + 8]
shr edx, 0x10
mov byte [eax], dl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458326
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x458323
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4582f3
cmp dword [esi + 0x48], 0
jne 0x4582f3
sub eax, ecx
push eax
push ecx
mov ecx, dword [esi + 0x10]
push ecx
call edx
add esp, 0xc
test eax, eax
jge 0x4582f3
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x458315
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov edx, dword [esp + 0x50]
mov eax, dword [esi + 8]
shr edx, 0x18
mov byte [eax], dl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458397
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x458394
mov edx, dword [esi + 0x18]
test edx, edx
je 0x458364
cmp dword [esi + 0x48], 0
jne 0x458364
sub eax, ecx
push eax
push ecx
mov ecx, dword [esi + 0x10]
push ecx
call edx
add esp, 0xc
test eax, eax
jge 0x458364
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x458386
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
mov byte [eax], dl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458409
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x458406
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4583d2
cmp dword [esi + 0x48], 0
jne 0x4583d2
sub eax, ecx
push eax
push ecx
mov ecx, dword [esi + 0x10]
push ecx
call edx
add esp, 0xc
test eax, eax
jge 0x4583d2
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4583f4
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov edx, dword [esp + 0x14]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
mov eax, edx
shr eax, 8
mov byte [ecx], al
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45847c
mov ecx, dword [esi]
cmp eax, ecx
jbe 0x458479
mov edx, dword [esi + 0x18]
test edx, edx
je 0x458445
cmp dword [esi + 0x48], 0
jne 0x458445
sub eax, ecx
push eax
mov eax, dword [esi + 0x10]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
jge 0x458445
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x458467
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 8]
sub edx, eax
push edx
push eax
mov eax, dword [esi + 0x3c]
push eax
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov edx, dword [esp + 0x14]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
mov eax, edx
shr eax, 0x10
mov byte [ecx], al
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45849a
call fcn.0044f3f0
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 8]
shr edx, 0x18
mov byte [eax], dl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4584b2
call fcn.0044f3f0
mov ecx, dword [esi + 8]
mov dl, byte [esp + 0x20]
mov byte [ecx], dl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4584cb
call fcn.0044f3f0
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 8]
shr eax, 8
mov byte [ecx], al
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4584e7
call fcn.0044f3f0
xor eax, eax
mov ecx, esi
call fcn.0044f770
cmp dword [ebx + 0xec], ebp
jne 0x4585aa
mov edi, ebx
mov eax, esi
call fcn.0045ecc0
mov edi, eax
mov eax, dword [ebx + 0xf0]
cmp eax, 0x15001
je 0x458534
cmp eax, 0x15000
je 0x458534
cmp eax, 0x11001
je 0x458534
cmp dword [ebx + 0x28], 0
jne 0x458534
xor eax, eax
mov ecx, esi
add edi, 2
call fcn.0044f860
test edi, edi
jl 0x45871c
cmp edi, dword [esp + 0x50]
je 0x458585
push 0
push 0
mov eax, 1
mov ecx, esi
call fcn.0044f510
mov ebp, edx
mov edx, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 0x40]
push edx
push eax
xor eax, eax
mov ecx, esi
call fcn.0044f510
mov eax, edi
mov ecx, esi
call fcn.0044f770
push ebp
push ebx
xor eax, eax
mov ecx, esi
call fcn.0044f510
add esp, 0x18
mov ebp, 1
cmp dword [esp + 0x1c], 0
je 0x458616
cmp dword [esp + 0x18], 0
je 0x458616
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push ecx
call fcn.0044f470
add esp, 4
jmp 0x458616
mov eax, dword [ebx + 0x34]
mov ecx, esi
call fcn.0044f770
mov eax, dword [ebx + 0x38]
mov ecx, esi
call fcn.0044f770
mov edx, dword [esi + 8]
mov byte [edx], 2
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4585d4
call fcn.0044f3f0
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0x28]
mov ecx, dword [esi + 8]
add ebx, 0x28
mov byte [ecx], bl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4585f3
call fcn.0044f3f0
mov edx, dword [esi + 8]
shr ebx, 8
mov byte [edx], bl
add dword [esi + 8], ebp
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45860b
call fcn.0044f3f0
mov edi, dword [esp + 0x28]
mov eax, esi
call fcn.0045f010
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
push ecx
call fcn.00456c40
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x54]
add esp, 8
cmp eax, dword [edx + 0x60]
jb 0x457a20
mov edi, edx
push 0
push 0
mov eax, ebp
mov ecx, esi
call fcn.0044f510
mov dword [esp + 0x48], eax
push 0x596158
mov eax, esi
mov dword [esp + 0x50], edx
call fcn.00456900
add esp, 0xc
mov eax, 0x18
mov ecx, esi
call fcn.0044f770
xor eax, eax
mov ecx, esi
call fcn.0044f770
push 0x596168
mov eax, esi
call fcn.00456900
mov eax, dword [edi + 0x60]
add esp, 4
mov ecx, esi
call fcn.0044f770
cmp dword [edi + 0x60], 0
mov dword [esp + 0x28], 0
jbe 0x4588b6
mov eax, dword [esp + 0x10]
add eax, 0x210
add edi, 0x64
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], edi
mov ecx, dword [esp + 0x50]
mov eax, dword [0x5d02d8]
test eax, eax
mov edx, dword [ecx]
mov ebp, dword [edx + 8]
je 0x4586dd
cmp dword [eax + 0x14], 0
je 0x4586d6
mov ecx, dword [eax + 8]
cmp ecx, dword [ebp + 0xf0]
je 0x458727
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x4586c5
xor edi, edi
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 8]
mov ebx, dword [edx]
mov byte [eax], bl
add dword [esi + 8], 1
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4586fb
call fcn.0044f3f0
mov ecx, dword [esi + 8]
shr ebx, 8
mov byte [ecx], bl
add dword [esi + 8], 1
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458714
call fcn.0044f3f0
test edi, edi
je 0x45872b
mov eax, dword [edi]
jmp 0x458731
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov edi, eax
jmp 0x4586df
lea eax, [ebp + 0xcc]
push eax
mov eax, esi
call fcn.00456a00
mov edx, dword [esi + 8]
mov byte [edx], 0
mov edi, 1
add dword [esi + 8], edi
mov eax, dword [esi + 8]
add esp, 4
cmp eax, dword [esi + 0xc]
jb 0x458757
call fcn.0044f3f0
mov eax, dword [esi + 8]
mov byte [eax], 0
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45876d
call fcn.0044f3f0
cmp dword [ebp + 0xec], edi
jne 0x45881f
mov ecx, dword [esi + 8]
mov byte [ecx], 2
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45878f
call fcn.0044f3f0
mov edx, dword [esi + 8]
mov byte [edx], 0
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4587a5
call fcn.0044f3f0
cmp dword [ebp + 0xf4], 0
jne 0x4587d6
mov edx, dword [ebp + 0xf0]
mov ecx, 0x595ee0
mov eax, 0x15000
mov edi, edi
cmp eax, edx
je 0x45881a
mov eax, dword [ecx + 8]
add ecx, 8
test eax, eax
jne 0x4587c0
xor ecx, ecx
mov dword [ebp + 0xf4], ecx
mov ebx, dword [ebp + 0xf4]
test ebx, ebx
je 0x45871c
mov eax, dword [esi + 8]
mov byte [eax], bl
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x4587f9
call fcn.0044f3f0
mov ecx, dword [esi + 8]
shr ebx, 8
mov byte [ecx], bl
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458893
call fcn.0044f3f0
jmp 0x458893
mov ecx, dword [ecx + 4]
jmp 0x4587d0
mov edx, dword [esi + 8]
mov byte [edx], 4
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458835
call fcn.0044f3f0
mov eax, dword [esi + 8]
mov byte [eax], 0
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45884b
call fcn.0044f3f0
cmp dword [ebp + 0xf4], 0
jne 0x45887e
mov edx, dword [ebp + 0xf0]
mov ecx, 0x595ad0
mov eax, 0x1c
cmp eax, edx
je 0x458a64
mov eax, dword [ecx + 8]
add ecx, 8
test eax, eax
jne 0x458864
xor ecx, ecx
mov dword [ebp + 0xf4], ecx
mov eax, dword [ebp + 0xf4]
test eax, eax
je 0x45871c
mov ecx, esi
call fcn.0044f770
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x50], 4
add dword [esp + 0x20], 0x70
add eax, edi
cmp eax, dword [ecx + 0x60]
mov dword [esp + 0x28], eax
jb 0x4586b3
mov ebp, edi
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push edx
push eax
call fcn.00456c40
push 0
push 0
mov eax, ebp
mov ecx, esi
call fcn.0044f510
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x44]
mov ebx, eax
add esp, 0x10
sub ebx, edi
cmp dword [ecx + 8], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
je 0x458992
mov edx, edi
add ebx, 0x58
sub edx, 0x28
mov eax, ebp
sbb eax, 0
push eax
push edx
xor eax, eax
mov ecx, esi
call fcn.0044f510
mov ecx, dword [esi + 8]
mov byte [ecx], bl
add dword [esi + 8], 1
mov eax, dword [esi + 8]
add esp, 8
cmp eax, dword [esi + 0xc]
jb 0x458928
call fcn.0044f3f0
mov edx, dword [esi + 8]
mov eax, ebx
shr eax, 8
mov byte [edx], al
add dword [esi + 8], 1
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458947
call fcn.0044f3f0
mov eax, edi
sub eax, 0x20
mov ecx, ebp
sbb ecx, 0
push ecx
push eax
xor eax, eax
mov ecx, esi
call fcn.0044f510
mov edx, dword [esi + 8]
mov byte [edx], bl
add dword [esi + 8], 1
mov eax, dword [esi + 8]
add esp, 8
cmp eax, dword [esi + 0xc]
jb 0x458975
call fcn.0044f3f0
mov eax, dword [esi + 8]
mov cl, byte [esp + 0x4c]
mov byte [eax], cl
add dword [esi + 8], 1
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x45898f
call fcn.0044f3f0
sub ebx, 0x58
sub edi, 0xe
sbb ebp, 0
push ebp
push edi
xor eax, eax
mov ecx, esi
call fcn.0044f510
lea eax, [ebx + 0x1e]
cdq
mov ecx, esi
mov edi, edx
call fcn.0044f770
mov eax, edi
mov ecx, esi
call fcn.0044f770
mov ebp, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
push ebp
push ebx
xor eax, eax
mov ecx, esi
call fcn.0044f510
mov edi, dword [esp + 0x20]
push 0x596178
mov eax, esi
mov dword [edi + 0x4710], ebx
mov dword [edi + 0x4714], ebp
call fcn.00456900
mov eax, dword [esp + 0x6c]
add esp, 0x14
mov ecx, esi
call fcn.0044f770
mov eax, dword [esp + 0x5c]
mov ecx, esi
call fcn.0044f770
push 0x5961b8
mov eax, esi
call fcn.00456900
mov eax, dword [edi + 0x3a10]
mov edi, dword [edi + 0x3a14]
add esp, 4
mov ecx, esi
call fcn.0044f770
mov eax, edi
mov ecx, esi
call fcn.0044f770
mov edx, dword [esi + 8]
mov byte [edx], 1
add dword [esi + 8], 1
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458a43
call fcn.0044f3f0
mov eax, dword [esi + 8]
mov byte [eax], 1
add dword [esi + 8], 1
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x458a5a
call fcn.0044f3f0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
mov ecx, dword [ecx + 4]
jmp 0x458878