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

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x24]
push ebx
push ebp
push esi
push edi
mov edi, dword [eax]
mov dword [esp + 0x14], edi
mov ebx, str.D:c2vVyruz_D3DpglibpgpgDIALOG.cpp
mov esi, dword [edi]
test esi, esi
jne 0x454267
push esi
push 2
mov dword [0x51d090], ebx
mov dword [0x51d094], 0xeb
call fcn.00449f60
add esp, 8
mov eax, dword [esi + 0x70]
mov ebp, 0xf0
mov dword [esp + 0x20], eax
add eax, 0x80
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x74]
add eax, 0xffffff80
mov dword [esi + 0x74], eax
jns 0x45429e
push 0
push 2
mov dword [0x51d090], ebx
mov dword [0x51d094], ebp
call fcn.00449f60
add esp, 8
mov esi, dword [edi]
test esi, esi
jne 0x4542bf
push esi
push 2
mov dword [0x51d090], ebx
mov dword [0x51d094], 0xeb
call fcn.00449f60
add esp, 8
mov eax, dword [esi + 0x70]
mov dword [esp + 0x10], eax
add eax, 0x80
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x74]
add eax, 0xffffff80
mov dword [esi + 0x74], eax
jns 0x4542f1
push 0
push 2
mov dword [0x51d090], ebx
mov dword [0x51d094], ebp
call fcn.00449f60
add esp, 8
mov esi, dword [esp + 0x38]
lea edx, [esp + 0x18]
lea eax, [esp + 0x2c]
mov ecx, dword [esi + 4]
push ecx
push edx
push eax
call fcn.00450c10
mov eax, dword [esi]
add esp, 0xc
sub eax, 4
je 0x454656
dec eax
je 0x4543b7
sub eax, 3
je 0x4543aa
mov eax, dword [esi + 8]
mov edx, eax
test edx, edx
je 0x45434d
mov cl, byte [edx]
mov edi, 1
test cl, cl
je 0x45434d
cmp cl, 0x7c
jne 0x454340
inc edi
mov cl, byte [edx + 1]
inc edx
test cl, cl
jne 0x45433a
cmp edi, 0x20
jge 0x454374
mov edx, eax
test edx, edx
je 0x454370
mov cl, byte [edx]
mov edi, 1
test cl, cl
je 0x45436c
cmp cl, 0x7c
jne 0x454364
inc edi
mov cl, byte [edx + 1]
inc edx
test cl, cl
jne 0x45435e
mov ecx, edi
jmp 0x454379
xor ecx, ecx
jmp 0x454379
mov ecx, 0x20
test ecx, ecx
mov dword [esp + 0x38], ecx
jle 0x454744
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
sub ebx, edi
mov ebp, ecx
lea ecx, [ebx + edi]
push eax
push ecx
push edi
call fcn.00450c10
add esp, 0xc
add edi, 4
dec ebp
jne 0x454391
jmp 0x454744
mov dword [esp + 0x38], 0
jmp 0x454744
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4543da
push 0
push 2
mov dword [0x51d090], ebx
mov dword [0x51d094], 0xa54
call fcn.00449f60
add esp, 8
mov eax, dword [esi + 0x20]
test eax, eax
je 0x454641
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
mov ebx, dword [0x50deb4]
sub edi, ecx
mov dword [esp + 0x38], 1
inc edi
call fcn.00458a20
mov ebp, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
xor edx, edx
sub eax, ebp
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x45444e
mov edi, dword [0x50deb4]
call fcn.00458a20
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [edi + 0x60]
xor edx, edx
sub eax, ebx
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x45446f
mov edi, dword [esi + 0x20]
call fcn.00458a20
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x58]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458a20
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp eax, 5
jbe 0x4544ff
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
sub edi, ecx
inc edi
call fcn.00458a20
mov ebp, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
xor edx, edx
sub eax, ebp
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x4544dc
mov edi, dword [0x50deb4]
call fcn.00458a20
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [edi + 0x60]
xor edx, edx
sub eax, ebx
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x454504
mov edi, dword [esi + 0x20]
call fcn.00458a20
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x58]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458a20
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
jmp 0x454504
mov eax, 5
mov edx, dword [esp + 0x20]
mov dword [edx], eax
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub edi, ecx
inc edi
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458bb0
lea edi, [eax + edi - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x45456e
mov edi, dword [0x50deb4]
call fcn.00458bb0
mov ebx, dword [edi + 0x5c]
mov ecx, eax
mov eax, dword [edi + 0x64]
xor edx, edx
sub eax, ebx
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x45458f
mov edi, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [edi + 0x64]
mov ecx, dword [edi + 0x5c]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp eax, 5
jbe 0x454631
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub edi, ecx
inc edi
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458bb0
lea edi, [eax + edi - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x454605
mov edi, dword [0x50deb4]
call fcn.00458bb0
mov ebx, dword [edi + 0x5c]
mov ecx, eax
mov eax, dword [edi + 0x64]
xor edx, edx
sub eax, ebx
inc eax
div ecx
mov edx, dword [esp + 0x10]
shr eax, 1
inc eax
mov dword [edx], eax
jmp 0x454744
mov edi, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [edi + 0x64]
mov ecx, dword [edi + 0x5c]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
jmp 0x454744
mov edx, dword [esp + 0x10]
mov eax, 5
mov dword [edx], eax
jmp 0x454744
mov dword [0x51d090], ebx
mov dword [0x51d094], 0xa5a
jmp 0x454738
mov eax, dword [esi + 0x18]
test eax, eax
je 0x454728
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x454728
call fcn.00458a20
mov ebx, eax
call fcn.00458bb0
lea ebp, [ebx + 0x1f]
mov edi, eax
mov eax, ebp
mov dword [esp + 0x38], 0
cdq
idiv ebx
lea ecx, [edi + 0x1f]
mov eax, ecx
sub ebp, edx
cdq
idiv edi
sub ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x18]
cmp dword [ecx], 0
je 0x454744
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
cdq
idiv edi
mov edx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
sub eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
mov edx, dword [esi + 0x1c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [edx + 0xc]
mov ebp, dword [eax + ecx*4]
mov ecx, dword [ebp + 0x18]
lea eax, [ecx + ebx - 1]
mov ecx, dword [esp + 0x1c]
cdq
idiv ebx
cmp ecx, eax
jle 0x4546ec
mov eax, ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
lea ecx, [edx + ecx*4]
mov edx, dword [esp + 0x28]
mov dword [edx + ecx], eax
mov eax, dword [ebp + 0x1c]
lea eax, [eax + edi - 1]
cdq
idiv edi
mov edx, dword [esp + 0x24]
cmp edx, eax
jle 0x454712
mov eax, edx
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x18]
inc eax
mov dword [esp + 0x38], eax
cmp dword [ecx + eax*4], 0
jne 0x4546c8
jmp 0x454744
mov dword [0x51d090], ebx
mov dword [0x51d094], 0xa50
push 0
push 2
call fcn.00449f60
add esp, 8
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
mov edi, ebx
test ebp, ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ecx
jle 0x454793
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
sub edx, eax
mov dword [esp + 0x1c], ebp
mov ecx, dword [eax + edx]
cmp edi, ecx
jg 0x454775
mov edi, ecx
mov ecx, dword [eax]
cmp dword [esp + 0x24], ecx
jg 0x454781
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
add eax, 4
dec ecx
mov dword [esp + 0x1c], ecx
jne 0x45476c
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4547a0
inc eax
mov dword [esp + 0x18], eax
mov ecx, dword [esi]
cmp ecx, 2
jne 0x4547cc
add edi, ecx
add eax, ecx
test ebp, ebp
mov dword [esp + 0x1c], edi
jle 0x454852
mov ecx, dword [esp + 0x10]
mov edx, ebp
mov ebp, dword [ecx]
add ecx, 4
add eax, ebp
dec edx
jne 0x4547bd
jmp 0x454852
mov eax, 2
test ebp, ebp
mov dword [esp + 0x1c], eax
jle 0x4547ef
mov ecx, dword [esp + 0x20]
mov edx, ebp
mov edi, dword [ecx]
add ecx, 4
dec edx
lea eax, [eax + edi + 2]
jne 0x4547df
mov dword [esp + 0x1c], eax
cmp dword [esi], 5
jne 0x4547fb
add eax, 4
mov dword [esp + 0x1c], eax
lea ecx, [ebx + 2]
cmp eax, ecx
jge 0x454813
sub ebx, eax
mov dword [esp + 0x1c], ecx
add ebx, 2
sar ebx, 1
mov dword [esp + 0x24], ebx
jmp 0x45481b
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp ebp, 1
lea eax, [edx + 4]
mov edx, dword [ecx]
jle 0x45483f
lea edi, [ecx + 4]
dec ebp
mov ecx, dword [edi]
cmp edx, ecx
jg 0x454839
mov edx, ecx
add edi, 4
dec ebp
jne 0x454831
mov ecx, dword [esi]
add eax, edx
cmp ecx, 3
jne 0x45484a
add eax, ecx
cmp ecx, 5
jne 0x454852
add eax, 2
cmp dword [esi], 8
jne 0x45485e
mov edx, dword [esp + 0x18]
lea eax, [edx + 1]
mov ebp, dword [esi + 4]
mov edi, eax
test ebp, ebp
je 0x45486b
sub edi, dword [esp + 0x18]
mov cl, byte [esi + 0x24]
mov ebx, dword [esp + 0x1c]
neg cl
sbb ecx, ecx
xor edx, edx
and ecx, 3
mov dword [esp + 0x20], ecx
dec ecx
test ecx, ecx
setl dl
dec edx
and ecx, edx
add ecx, eax
push ecx
push ebx
push 0
push 0
push ebp
mov ebp, dword [esp + 0x28]
push ebp
call fcn.00453020
add esp, 0x18
test eax, eax
jne case.default.0x455706
cmp dword [esi], 8
je 0x4548dc
mov eax, dword [esi + 4]
push edi
test eax, eax
push 1
je 0x4548c5
push 1
push ebx
push 1
push 0
push 0
push 0x1080
jmp 0x4548d3
push 0
push ebx
push 1
push 0
push 0
push 0x4080
push ebp
call fcn.0044fde0
add esp, 0x24
mov eax, dword [esp + 0x24]
mov ebx, dword [esi + 8]
push 0
add eax, 2
push 0
lea edi, [ebp + 0xd0]
push 2
push eax
push edi
mov dword [esp + 0x38], eax
call fcn.00455810
mov eax, dword [esi]
add esp, 0x14
dec eax
cmp eax, 7
ja case.0x45490c.6
jmp dword [eax*4 + 0x4557d4]
mov ecx, dword [ebp]
mov dword [esp + 0x28], ebx
mov eax, dword [ecx + 0x78]
test eax, eax
ja 0x454941
push 0
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x2b4
call fcn.00449f60
add esp, 8
push 1
push ebp
call fcn.00455880
push 0
push 0
push 2
lea edx, [esp + 0x3c]
push 1
push edx
push ebp
call fcn.00455940
add esp, 0x20
jmp case.0x45490c.8
mov eax, dword [esp + 0x28]
push 0
add eax, 2
push eax
push 1
push 1
push edi
call fcn.00455810
mov ecx, dword [ebp]
mov dword [esp + 0x3c], ebx
add esp, 0x14
mov eax, dword [ecx + 0x78]
test eax, eax
ja 0x4549a9
push 0
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x2a7
call fcn.00449f60
add esp, 8
push 2
push ebp
call fcn.00455880
push 0
push 1
push 0
lea edx, [esp + 0x3c]
push 0
push edx
push ebp
call fcn.00455940
add esp, 0x20
jmp case.0x45490c.8
mov eax, dword [0x50ff0c]
mov ecx, dword [ebp]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x78]
test eax, eax
ja 0x4549ff
push 0
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x2b4
call fcn.00449f60
add esp, 8
push 1
push ebp
call fcn.00455880
xor ebx, ebx
lea edx, [esp + 0x30]
push ebx
push ebx
push 2
push 1
push edx
push ebp
call fcn.00455940
mov eax, dword [ebp]
push ebx
push 1
mov ecx, dword [eax + 0x78]
mov eax, dword [eax + ecx*4 + 0x7c]
mov edx, dword [eax + 0x48]
mov ecx, dword [edx]
mov edx, dword [eax]
sub ecx, edx
inc ecx
mov dword [edi], ecx
mov edx, dword [eax + 0x48]
mov ecx, dword [edx + 0xc]
mov edx, dword [eax + 4]
sub ecx, edx
mov dword [edi + 8], ebx
add ecx, 2
mov dword [edi + 0xc], ebx
mov dword [edi + 4], ecx
mov edi, dword [str.1234567890123456789012345678]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edx, dword [0x50ff18]
mov eax, dword [esi + 0x10]
not ecx
add ecx, 5
push ecx
mov ecx, dword [esi + 0x14]
push ebx
push edx
mov edx, dword [esi + 0xc]
push eax
push ecx
push edx
push ebp
call fcn.00450360
add esp, 0x44
jmp case.0x45490c.8
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x1c]
mov ebp, dword [esi + 0x18]
mov dword [esp + 0x28], eax
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x78]
test eax, eax
ja 0x454ab6
push 0
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x2c0
call fcn.00449f60
add esp, 8
mov eax, dword [esp + 0x28]
test eax, eax
je 0x454ac2
test ebp, ebp
jne 0x454ae2
push 0
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x2c3
call fcn.00449f60
add esp, 8
push 4
push ebx
call fcn.00455880
push 0
push 0
push 4
push edi
call fcn.00455840
mov eax, dword [ebp]
add esp, 0x18
test eax, eax
je 0x454b28
mov edx, dword [esp + 0x28]
push 0
push 0
push 2
mov ecx, dword [edx + 0xc]
push 1
add ebp, 4
mov edx, dword [ecx + eax*4]
push edx
push 0
push ebx
call fcn.0044feb0
mov eax, dword [ebp]
add esp, 0x1c
test eax, eax
jne 0x454b00
mov al, byte [esi + 0x24]
test al, al
je case.0x45490c.8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov eax, dword [0x50fee4]
mov ebx, dword [esp + 0x14]
push ecx
push 0
mov ebp, dword [eax + 8]
push 1
push edx
push 1
push 0
push 0
push 0x4010
push ebx
call fcn.0044fde0
push 0
push 0
push 1
push 1
push edi
call fcn.00455810
mov ecx, dword [0x50fee4]
mov eax, ebp
and eax, 0xffffbb7c
mov dword [esp + 0x60], 0
or eax, 0x8020
add esp, 0x38
mov dword [ecx + 8], eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x78]
test eax, eax
ja 0x454bb5
push 0
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x2a7
call fcn.00449f60
add esp, 8
push 2
push ebx
call fcn.00455880
push 0
push 1
push 0
lea eax, [esp + 0x3c]
push 0
push eax
push ebx
call fcn.00455940
mov ecx, dword [0x50fee4]
add esp, 0x20
mov dword [ecx + 8], ebp
jmp case.0x45490c.8
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jae 0x454c45
mov ebx, dword [0x50deb4]
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x454c66
mov ebx, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x5c]
mov ebp, eax
sub edx, ecx
add ebp, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebp
xor edx, edx
div ecx
cmp eax, 5
jbe 0x454cf6
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jae 0x454cd3
mov ebx, dword [0x50deb4]
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x454cfb
mov ebx, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x5c]
mov ebp, eax
sub edx, ecx
add ebp, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebp
xor edx, edx
div ecx
jmp 0x454cfb
mov eax, 5
mov ebx, dword [esp + 0x14]
push 0
add eax, 2
push 2
push eax
push 1
push str.ZYXVUTRQPOMLKJIHGFDCBA
push 0x10
push 0
push 0xfffffffffffffffd
push ebx
call fcn.00450360
mov edx, dword [ebx]
mov ebp, dword [esi + 0x20]
add esp, 0x24
mov eax, dword [edx + 0x78]
test eax, eax
ja 0x454d49
push 0
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x2d0
call fcn.00449f60
add esp, 8
push 5
push ebx
call fcn.00455880
push ebp
push 0
push 5
push edi
call fcn.00455840
push 0
push 0
push 1
push 1
push 0
push 0
push ebx
call fcn.0044feb0
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
add esp, 0x34
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jae 0x454dd5
mov ebx, dword [0x50deb4]
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x454df6
mov ebx, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x5c]
mov ebp, eax
sub edx, ecx
add ebp, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebp
xor edx, edx
div ecx
cmp eax, 5
jbe 0x454e8e
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jae 0x454e67
mov ebx, dword [0x50deb4]
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
shr eax, 1
inc eax
mov dword [esp + 0x20], eax
jmp 0x454e96
mov ebx, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x5c]
mov ebp, eax
sub edx, ecx
add ebp, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebp
xor edx, edx
div ecx
mov dword [esp + 0x20], eax
jmp 0x454e96
mov dword [esp + 0x20], 5
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jae 0x454efa
mov ebx, dword [0x50deb4]
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x454f1b
mov ebx, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x5c]
mov ebp, eax
sub edx, ecx
add ebp, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebp
xor edx, edx
div ecx
cmp eax, 5
jbe 0x454f6f
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jb 0x454f6a
call fcn.00458bb0
call fcn.00458bb0
call fcn.00458bb0
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jae 0x454fd8
mov ebx, dword [0x50deb4]
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x454ff9
mov ebx, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x5c]
mov ebp, eax
sub edx, ecx
add ebp, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebp
xor edx, edx
div ecx
cmp eax, 5
jbe 0x45508d
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jae 0x455068
mov ebx, dword [0x50deb4]
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
jmp 0x455092
mov ebx, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x5c]
mov ebp, eax
sub edx, ecx
add ebp, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebp
xor edx, edx
div ecx
mov ebp, eax
jmp 0x455092
mov ebp, 5
mov edx, dword [esp + 0x20]
mov ebx, dword [esi + 0x20]
push 0
add edx, 2
push 0
push edx
push 1
push 0x50f80c
call fcn.00458bb0
imul eax, ebp
mov ecx, dword [ebx + 0x64]
mov edx, dword [ebx + 0x5c]
sub ecx, edx
mov edx, dword [esp + 0x28]
sub ecx, eax
inc ecx
push ecx
push 0
push 0
push edx
call fcn.00450360
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
add esp, 0x24
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jae 0x455131
mov ebx, dword [0x50deb4]
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x455152
mov ebx, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x5c]
mov ebp, eax
sub edx, ecx
add ebp, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebp
xor edx, edx
div ecx
cmp eax, 5
jbe 0x4551e2
mov eax, dword [esi + 0x20]
mov ebp, dword [0x50deb4]
mov ebx, dword [eax + 0x64]
mov ecx, dword [eax + 0x5c]
sub ebx, ecx
inc ebx
call fcn.00458bb0
mov edx, dword [ebp + 0x5c]
mov ecx, eax
mov eax, dword [ebp + 0x64]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
call fcn.00458bb0
lea ebx, [eax + ebx - 1]
call fcn.00458bb0
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp ebp, eax
jae 0x4551bf
mov ebx, dword [0x50deb4]
call fcn.00458bb0
mov ebp, dword [ebx + 0x5c]
mov ecx, eax
mov eax, dword [ebx + 0x64]
xor edx, edx
sub eax, ebp
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x4551e7
mov ebx, dword [esi + 0x20]
call fcn.00458bb0
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x5c]
mov ebp, eax
sub edx, ecx
add ebp, edx
call fcn.00458bb0
mov ecx, eax
mov eax, ebp
xor edx, edx
div ecx
jmp 0x4551e7
mov eax, 5
mov ecx, dword [esp + 0x24]
xor edx, edx
mov dword [edi + 8], edx
mov dword [edi + 0xc], edx
add eax, 3
mov ebx, 1
mov edx, 1
sub ebx, ecx
sub edx, eax
mov dword [edi], ecx
mov dword [edi + 0x10], ebx
mov dword [edi + 4], eax
mov dword [edi + 0x14], edx
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
sub edi, ecx
inc edi
call fcn.00458a20
mov ebp, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
xor edx, edx
sub eax, ebp
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x455273
mov edi, dword [0x50deb4]
call fcn.00458a20
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [edi + 0x60]
xor edx, edx
sub eax, ebx
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x455294
mov edi, dword [esi + 0x20]
call fcn.00458a20
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x58]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458a20
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp eax, 5
jbe 0x45532c
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
sub edi, ecx
inc edi
call fcn.00458a20
mov ebp, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
xor edx, edx
sub eax, ebp
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x455305
mov edi, dword [0x50deb4]
call fcn.00458a20
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [edi + 0x60]
xor edx, edx
sub eax, ebx
inc eax
div ecx
shr eax, 1
inc eax
mov dword [esp + 0x20], eax
jmp 0x455334
mov edi, dword [esi + 0x20]
call fcn.00458a20
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x58]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458a20
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
mov dword [esp + 0x20], eax
jmp 0x455334
mov dword [esp + 0x20], 5
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
sub edi, ecx
inc edi
call fcn.00458a20
mov ebp, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
xor edx, edx
sub eax, ebp
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x455398
mov edi, dword [0x50deb4]
call fcn.00458a20
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [edi + 0x60]
xor edx, edx
sub eax, ebx
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x4553b9
mov edi, dword [esi + 0x20]
call fcn.00458a20
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x58]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458a20
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp eax, 5
jbe 0x45544d
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
sub edi, ecx
inc edi
call fcn.00458a20
mov ebp, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
xor edx, edx
sub eax, ebp
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x455428
mov edi, dword [0x50deb4]
call fcn.00458a20
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [edi + 0x60]
xor edx, edx
sub eax, ebx
inc eax
div ecx
mov ebp, eax
shr ebp, 1
inc ebp
jmp 0x455452
mov edi, dword [esi + 0x20]
call fcn.00458a20
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x58]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458a20
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
mov ebp, eax
jmp 0x455452
mov ebp, 5
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
sub edi, ecx
inc edi
call fcn.00458a20
mov edx, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x4554b6
mov edi, dword [0x50deb4]
call fcn.00458a20
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [edi + 0x60]
xor edx, edx
sub eax, ebx
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x4554d7
mov edi, dword [esi + 0x20]
call fcn.00458a20
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x58]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458a20
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp eax, 5
jbe 0x45552b
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
sub edi, ecx
inc edi
call fcn.00458a20
mov edx, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jb 0x455526
call fcn.00458a20
call fcn.00458a20
call fcn.00458a20
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
sub edi, ecx
inc edi
call fcn.00458a20
mov edx, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x455594
mov edi, dword [0x50deb4]
call fcn.00458a20
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [edi + 0x60]
xor edx, edx
sub eax, ebx
inc eax
div ecx
shr eax, 1
inc eax
jmp 0x4555b5
mov edi, dword [esi + 0x20]
call fcn.00458a20
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x58]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458a20
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
cmp eax, 5
jbe 0x455649
mov eax, dword [esi + 0x20]
mov ebx, dword [0x50deb4]
mov edi, dword [eax + 0x60]
mov ecx, dword [eax + 0x58]
sub edi, ecx
inc edi
call fcn.00458a20
mov edx, dword [ebx + 0x58]
mov ecx, eax
mov eax, dword [ebx + 0x60]
sub eax, edx
xor edx, edx
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
call fcn.00458a20
lea edi, [eax + edi - 1]
call fcn.00458a20
mov ecx, eax
mov eax, edi
xor edx, edx
div ecx
cmp ebx, eax
jae 0x455624
mov edi, dword [0x50deb4]
call fcn.00458a20
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [edi + 0x60]
xor edx, edx
sub eax, ebx
inc eax
div ecx
mov ebx, eax
shr ebx, 1
inc ebx
jmp 0x45564e
mov edi, dword [esi + 0x20]
call fcn.00458a20
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x58]
mov ebx, eax
sub edx, ecx
add ebx, edx
call fcn.00458a20
mov ecx, eax
mov eax, ebx
xor edx, edx
div ecx
mov ebx, eax
jmp 0x45564e
mov ebx, 5
mov edx, dword [esp + 0x20]
mov edi, dword [esi + 0x20]
add edx, 5
push 0
add ebp, 6
push edx
push ebp
push 0
push 0x50f810
call fcn.00458a20
imul eax, ebx
mov ecx, dword [edi + 0x60]
mov edx, dword [esp + 0x28]
sub ecx, eax
mov eax, dword [edi + 0x58]
sub ecx, eax
inc ecx
push ecx
push 0
push 0
push edx
call fcn.00450360
add esp, 0x24
jmp case.0x45490c.8
push 0
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0xad2
call fcn.00449f60
add esp, 8
mov edi, dword [esp + 0x14]
push edi
call fcn.00452ad0
add esp, 4
test eax, eax
jne case.default.0x455706
mov eax, dword [esp + 0x34]
mov ecx, dword [0x51d970]
xor ebx, ebx
mov eax, dword [eax]
mov edx, dword [eax]
mov byte [edx + 8], 1
mov edx, dword [eax]
mov byte [edx + 0xa], 1
mov edx, dword [eax]
mov dword [edx + 0x18], ebx
mov edx, dword [eax]
mov dword [edx + 0x14], ebx
mov edx, dword [eax]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax]
mov dword [ecx + 0x20], ebx
mov edx, dword [eax]
mov dword [edx + 0x24], ebx
mov eax, dword [eax]
mov dword [eax + 0x10], ebx
mov eax, dword [esi]
dec eax
cmp eax, 4
ja case.default.0x455706
jmp dword [eax*4 + 0x4557f4]
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x38]
dec ecx
lea eax, [esi - 1]
mov edx, ecx
cmp ecx, eax
jl 0x455720
mov edx, eax
cmp edx, ebx
jge 0x455728
xor esi, esi
jmp 0x455730
cmp ecx, eax
mov esi, ecx
jl 0x455730
mov esi, eax
push ebx
push edi
call fcn.00451900
push esi
push edi
call fcn.004519d0
mov eax, dword [0x51a938]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
push ebx
push edi
call fcn.00451900
push 1
push edi
call fcn.004519d0
mov eax, dword [0x51a938]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov edx, dword [edi]
push ebx
push ebx
push ebx
mov byte [edx + 3], 1
mov eax, dword [esi + 0x20]
push 1
push eax
push ebx
push edi
call fcn.00451740
push 0x451800
push 3
push ebx
push 2
push edi
call fcn.00450e90
push 0x451800
push 2
push ebx
push 2
push edi
call fcn.00450e90
add esp, 0x44
push 0x451800
push ebx
push ebx
push 2
push edi
call fcn.00450e90
push ebx
push edi
call fcn.00451900
push 1
push edi
call fcn.004519d0
add esp, 0x24
mov eax, dword [0x51a938]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret