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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x49c
mov eax, dword [0x60b4e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x468], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x46c], eax
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, ecx
mov dword [ebp - 0x458], ebx
push edi
mov dword [esi], vtable.CXDialogTemplate.0
mov eax, dword [ebx + 0x858]
mov dword [esi + 0x54], eax
mov eax, dword [ebx + 0x854]
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 0
mov eax, dword [ebx + 4]
mov dword [esi + 0x68], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x6c], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x70], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x74], eax
mov dword [esi + 0x88], 0xffffffff
mov eax, dword [ebx + 0x850]
mov dword [esi + 0x8c], eax
mov dword [esi + 0x90], 0x3e9
mov dword [esi + 0x94], 1
mov eax, dword [ebx]
mov dword [esi + 0x98], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x9c], eax
mov dword [ebp - 0x45c], eax
mov eax, dword [ebx + 0x14]
and eax, 1
mov dword [esi + 0xa4], eax
mov ecx, dword [ebx + 0x14]
and ecx, 2
mov dword [esi + 0xa8], ecx
mov eax, dword [ebx + 0x14]
and eax, 4
mov dword [esi + 0xb0], 0
mov dword [esi + 0xac], eax
mov eax, dword [ebx + 0x84c]
mov dword [esi + 0xb4], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0xb8], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0xbc], eax
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0xc0], eax
mov dword [esi + 0xd4], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0x4ec], 0
mov dword [esi + 0x4f0], 0
mov eax, dword [ebx + 0x85c]
mov dword [esi + 0x4f4], eax
mov edx, dword [ebx + 0x860]
mov eax, edx
mov dword [esi + 0x4f8], edx
mov dword [esi + 0x4fc], 0
test ecx, ecx
je 0x458f24
mov dword [esi + 0xa4], 1
cmp edx, 0xffffffff
jne 0x458f24
push 5
call dword [sym.imp.USER32.dll_GetSysColor]
mov dword [esi + 0x4f8], eax
cmp eax, 0xffffffff
je 0x458f36
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esi + 0x4fc], eax
mov edi, dword [sym.imp.USER32.dll_GetDialogBaseUnits]
mov dword [ebp - 0x474], edi
call edi
movzx eax, ax
mov dword [ebp - 0x47c], eax
call edi
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
push 4
push dword [ebp - 0x47c]
shr eax, 0x10
push 0x26
mov dword [ebp - 0x480], eax
call edi
push 8
push dword [ebp - 0x480]
mov dword [esi + 0x78], eax
push 0xc
call edi
push 4
push dword [ebp - 0x47c]
mov dword [esi + 0x80], eax
push 0xd
call edi
cmp dword [esi + 0xa8], 0
mov dword [esi + 0x7c], eax
je 0x458fb8
push 4
push dword [ebp - 0x47c]
push 6
call edi
add dword [esi + 0x78], eax
push 8
push dword [ebp - 0x480]
push 1
call edi
add dword [esi + 0x80], eax
push 8
push dword [ebp - 0x480]
push 0xa
call edi
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x484], eax
mov eax, dword [ebp - 0x45c]
and eax, 0xf00
cmp eax, 0x300
ja 0x459014
je 0x45900b
test eax, eax
je 0x459022
cmp eax, 0x100
je 0x459002
cmp eax, 0x200
jne 0x459022
mov dword [esi + 0x64], 3
jmp 0x45903b
mov dword [esi + 0x64], 2
jmp 0x45903b
mov dword [esi + 0x64], 4
jmp 0x45903b
cmp eax, 0x400
je 0x459034
cmp eax, 0x500
je 0x45902b
mov dword [esi + 0x64], 1
jmp 0x45903b
mov dword [esi + 0x64], 6
jmp 0x45903b
mov dword [esi + 0x64], 5
push 0x208
lea edi, [esi + 0x2e4]
push 0
push edi
call fcn.0055dac0
lea ecx, [ebx + 0x644]
add esp, 0xc
sub edi, ecx
lea esp, [esp]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edi + ecx - 2], ax
test ax, ax
jne 0x459060
push 0xc8
lea eax, [esi + 0x512]
push 0
push eax
call fcn.0055dac0
push 0x20000
call fcn.00525ad5
add esp, 0x10
mov dword [esi + 0xd4], eax
test eax, eax
je 0x4590a5
xor ecx, ecx
mov word [eax], cx
mov eax, dword [esi + 0xd4]
push 0x20000
push 0
push eax
call fcn.0055dac0
push 0x20000
call fcn.00525ad5
add esp, 0x10
mov dword [esi + 0xd8], eax
test eax, eax
je 0x4590d4
xor ecx, ecx
mov word [eax], cx
mov eax, dword [esi + 0xd8]
push 0x20000
push 0
push eax
call fcn.0055dac0
mov ebx, dword [esi + 0xbc]
add esp, 0xc
mov dword [ebp - 0x460], ebx
test ebx, ebx
jne 0x459103
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ebx, eax
mov dword [ebp - 0x460], eax
mov edx, dword [ebp - 0x468]
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
test edx, edx
je 0x459159
mov ecx, dword [esi + 0xd4]
mov eax, edx
shr eax, 0x10
push 0xffff
test eax, eax
jne 0x459140
push ecx
movzx eax, dx
push eax
push ebx
call edi
test eax, eax
jne 0x45914a
mov eax, dword [esi + 0xd4]
xor ecx, ecx
mov word [eax], cx
jmp 0x45914a
push edx
push ecx
call fcn.00574916
add esp, 0xc
mov eax, dword [esi + 0xd4]
xor ecx, ecx
mov word [eax + 0x1fffe], cx
mov edx, dword [ebp - 0x46c]
test edx, edx
je 0x4591a9
mov ecx, dword [esi + 0xd8]
mov eax, edx
shr eax, 0x10
push 0xffff
test eax, eax
jne 0x459190
push ecx
movzx eax, dx
push eax
push ebx
call edi
test eax, eax
jne 0x45919a
mov eax, dword [esi + 0xd8]
xor ecx, ecx
mov word [eax], cx
jmp 0x45919a
push edx
push ecx
call fcn.00574916
add esp, 0xc
mov eax, dword [esi + 0xd8]
xor ecx, ecx
mov word [eax + 0x1fffe], cx
push 0x208
lea eax, [esi + 0xdc]
push 0
push eax
call fcn.0055dac0
mov ecx, dword [ebp - 0x458]
add esp, 0xc
mov eax, dword [ecx + 0x22c]
test eax, eax
je 0x4591f0
push 0x103
lea ecx, [esi + 0xdc]
push ecx
push eax
push ebx
call edi
mov ecx, dword [ebp - 0x458]
test eax, eax
jne 0x4591f0
mov word [esi + 0xdc], ax
cmp word [esi + 0xdc], 0
jne 0x45921f
cmp word [ecx + 0x230], 0
lea eax, [ecx + 0x230]
je 0x45921f
push 0x103
push eax
lea eax, [esi + 0xdc]
push eax
call fcn.00574916
add esp, 0xc
xor eax, eax
push 0xc8
mov word [esi + 0x2e2], ax
lea eax, [esi + 0xf88]
push 0
push eax
call fcn.0055dac0
mov ecx, dword [ebp - 0x458]
add esp, 0xc
mov eax, dword [ecx + 0x438]
test eax, eax
je 0x45926c
push 0x63
lea ecx, [esi + 0xf88]
push ecx
push eax
push ebx
call edi
mov ecx, dword [ebp - 0x458]
test eax, eax
jne 0x45926c
mov word [esi + 0xf88], ax
cmp word [esi + 0xf88], 0
jne 0x459298
cmp word [ecx + 0x43c], 0
lea eax, [ecx + 0x43c]
je 0x459298
push 0x63
push eax
lea eax, [esi + 0xf88]
push eax
call fcn.00574916
add esp, 0xc
xor eax, eax
xor edi, edi
mov word [esi + 0x104e], ax
jmp 0x4592b0
imul ebx, edi, 0xc8
lea ecx, [esi + 0x628]
add ecx, ebx
cmp edi, 0xc
jne 0x4592e3
cmp word [ecx], 0
jne 0x459301
mov edx, dword [0x60a75c]
nop
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x4592d0
jmp 0x459301
mov edx, dword [edi*8 + 0x60a6fc]
lea ebx, [ebx]
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x4592f0
xor eax, eax
inc edi
mov word [ebx + esi + 0x6ee], ax
cmp edi, 0x13
jl 0x4592b0
mov eax, dword [ebp - 0x458]
cmp dword [eax + 0x864], 0
je 0x459332
add eax, 0x868
mov ecx, esi
push eax
call fcn.0045b3d0
jmp 0x4593b7
test dword [ebp - 0x45c], 0x20000000
jne 0x4593b7
xor ebx, ebx
imul edi, ebx, 0xc8
mov dword [ebp - 0x468], edi
add edi, 0x628
add edi, esi
cmp ebx, 0xc
jne 0x45936a
cmp word [edi], 0
jne 0x4593a1
push 0x64
push edi
push dword [0x60a758]
jmp 0x459374
push 0x64
push edi
push dword [ebx*8 + 0x60a6f8]
push dword [ebp - 0x460]
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
jne 0x4593a1
mov ecx, dword [ebx*8 + 0x60a6fc]
jmp 0x459390
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edi], ax
lea edi, [edi + 2]
test ax, ax
jne 0x459390
mov eax, dword [ebp - 0x468]
xor ecx, ecx
inc ebx
mov word [eax + esi + 0x6ee], cx
cmp ebx, 0x13
jl 0x459340
push 0
push 0
push 0
push 0x5b045c
call dword [sym.imp.GDI32.dll_CreateDCW]
mov ebx, eax
mov dword [ebp - 0x450], 0x1f4
push 0
lea eax, [ebp - 0x450]
mov dword [ebp - 0x478], ebx
push eax
push 0x1f4
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
lea eax, [ebp - 0x2b8]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
mov dword [esi + 0x4f0], eax
mov eax, dword [sym.imp.GDI32.dll_SelectObject]
push ebx
mov dword [ebp - 0x494], eax
call eax
mov dword [ebp - 0x490], eax
lea edi, [esi + 0x628]
lea eax, [esi + 0x5dc]
mov dword [ebp - 0x464], 0x13
mov dword [ebp - 0x46c], eax
mov ebx, eax
mov eax, dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov dword [ebp - 0x460], eax
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x459446
sub ecx, edx
lea eax, [ebp - 0x48c]
push eax
sar ecx, 1
push ecx
push edi
push dword [ebp - 0x478]
call dword [ebp - 0x460]
mov eax, dword [ebp - 0x48c]
mov ecx, dword [ebp - 0x484]
add eax, 0x14
cmp eax, ecx
cmovg ecx, eax
cmp dword [esi + 0x68], 0
je 0x459487
add ecx, dword [esi + 0x7c]
mov dword [ebx], ecx
add edi, 0xc8
add ebx, 4
sub dword [ebp - 0x464], 1
jne 0x459441
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call ebx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
add edi, 0x50
cmp dword [esi + 0xa8], 0
je 0x4594c6
push 0
call ebx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
sub edi, 0xa
cmp dword [esi + 0xac], 0
je 0x4594e3
push 0
call ebx
mov ecx, eax
mov eax, 0x55555556
imul ecx
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, dword [ebp - 0x45c]
and eax, 0xf0
mov dword [ebp - 0x468], eax
je 0x459503
push 0xb
call ebx
mov ecx, 0xfffffff0
sub ecx, eax
add edi, ecx
mov ebx, dword [sym.imp.USER32.dll_SetRect]
lea eax, [esi + 0xc4]
push edi
push edi
push 0
push 0
push eax
mov dword [ebp - 0x454], ebx
call ebx
push 0xc50
lea edi, [esi + 0xc4]
push edi
push 0xffffffffffffffff
push dword [esi + 0xd4]
push dword [ebp - 0x478]
call dword [sym.imp.USER32.dll_DrawTextW]
mov eax, dword [esi + 0xd0]
sub eax, dword [esi + 0xc8]
mov dword [ebp - 0x470], eax
lea eax, [ebp - 0x49c]
push eax
push 2
push 0x5b046c
push dword [ebp - 0x478]
call dword [ebp - 0x460]
mov ecx, dword [esi + 0xa8]
mov eax, 0x20
test ecx, ecx
mov dword [edi], 0x10
mov edx, 0x10
mov edi, 0x38
cmovne edx, eax
add dword [esi + 0xcc], 0x1c
test ecx, ecx
mov dword [esi + 0xc8], edx
mov eax, 0x18
cmovne eax, edi
add eax, 5
add dword [esi + 0xd0], eax
mov eax, dword [esi + 0xd0]
sub eax, edx
add eax, 0x10
push eax
push dword [esi + 0xcc]
lea eax, [ebp - 0x22c]
push 0
push 0
push eax
call ebx
cmp dword [esi + 0xa8], 0
je 0x4595d9
add dword [ebp - 0x224], 0x10
mov ecx, dword [ebp - 0x220]
mov edx, 0x46
mov eax, ecx
mov dword [esi + 0x504], 0
sub eax, dword [ebp - 0x228]
cmp eax, edx
cmovl ecx, edx
xor eax, eax
test dword [ebp - 0x45c], 0x1000
mov dword [esi + 0x50a], eax
mov word [esi + 0x508], ax
mov eax, 0x90c80880
mov dword [ebp - 0x220], ecx
mov ecx, 0x90c80882
cmovne eax, ecx
mov dword [esi + 0x500], eax
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
push eax
mov dword [esi + 0x40], eax
push eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
push eax
mov dword [esi + 0x4c], eax
push eax
mov dword [esi + 0x50], eax
lea eax, [ebp - 0x23c]
push eax
call ebx
mov ecx, dword [esi + 0xc0]
test ecx, ecx
jne 0x45968b
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, eax
mov edx, dword [ebp - 0x458]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x45969f
movzx eax, ax
push eax
push ecx
jmp 0x4596e8
cmp word [edx + 0x24], 0
lea eax, [edx + 0x24]
je 0x4596ad
push eax
push ecx
jmp 0x4596e8
mov eax, dword [ebp - 0x468]
test eax, eax
je 0x4596f4
add eax, 0xfffffff0
mov ecx, 0x7f03
cmp eax, 0x30
ja case.0x4596cb.17
movzx eax, byte [eax + 0x45a9f4]
jmp dword [eax*4 + 0x45a9e0]
mov ecx, 0x7f01
jmp case.0x4596cb.17
mov ecx, 0x7f02
jmp case.0x4596cb.17
mov ecx, 0x7f04
push ecx
push 0
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [esi + 0x4ec], eax
cmp dword [esi + 0x4ec], 0
je 0x4598b3
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xb
call edi
push 0xc
mov dword [ebp - 0x464], eax
call edi
mov ecx, dword [esi + 0xa8]
mov edx, 8
mov edi, dword [ebp - 0x464]
test ecx, ecx
mov dword [ebp - 0x468], eax
mov eax, 0x18
cmovne edx, eax
lea eax, [edx + edi]
add dword [esi + 0xc4], eax
mov eax, dword [esi + 0xcc]
add eax, edx
add edi, eax
mov dword [esi + 0xcc], edi
lea eax, [edi + 8]
mov dword [ebp - 0x224], eax
test ecx, ecx
je 0x459765
lea eax, [edi + 0x18]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x468]
add eax, 2
add eax, edx
push eax
mov eax, dword [ebp - 0x464]
add eax, 2
add eax, edx
push eax
push edx
push edx
lea eax, [ebp - 0x23c]
push eax
call ebx
push 0x20
call fcn.00525a98
mov ecx, eax
add esp, 4
mov dword [ebp - 0x488], ecx
test ecx, ecx
je 0x4597b4
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x82
mov dword [ecx + 0x1c], 0
jmp 0x4597b6
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov ebx, dword [esi + eax*4 + 4]
call dword [ebp - 0x474]
mov edi, eax
shr edi, 0x10
call dword [ebp - 0x474]
movzx eax, ax
movsx ecx, ax
mov dword [ebx + 0x18], 0x82
mov eax, dword [ebp - 0x23c]
shl eax, 2
cdq
idiv ecx
movsx edi, di
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x238]
shl eax, 3
cdq
idiv edi
push 2
mov word [ebx + 0xe], ax
mov eax, dword [ebp - 0x234]
sub eax, dword [ebp - 0x23c]
shl eax, 2
cdq
idiv ecx
mov word [ebx + 0x10], ax
mov eax, dword [ebp - 0x230]
sub eax, dword [ebp - 0x238]
shl eax, 3
cdq
idiv edi
mov word [ebx + 0x12], ax
mov eax, 0x3e8
mov dword [ebx + 8], 0
mov word [ebx + 0x14], ax
mov dword [ebx + 4], 0x50000000
call fcn.00525ad5
mov ecx, eax
add esp, 4
mov dword [ebx + 0x1c], ecx
mov edx, 0x5a13b8
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x459864
inc word [esi + 0x508]
cmp dword [esi + 0xa8], 0
je 0x4598b3
mov eax, dword [ebp - 0x470]
cmp eax, dword [ebp - 0x498]
jle 0x4598b3
mov ecx, dword [esi + 0xd0]
sub ecx, dword [esi + 0xc8]
mov eax, dword [ebp - 0x238]
mov dword [esi + 0xc8], eax
add eax, ecx
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x90]
mov edi, dword [esi + 0xd4]
mov dword [ebp - 0x464], eax
mov dword [esi + 0xa0], eax
inc eax
push 0x20
mov dword [esi + 0x90], eax
mov dword [ebp - 0x468], edi
call fcn.00525a98
mov ecx, eax
add esp, 4
mov dword [ebp - 0x488], ecx
test ecx, ecx
je 0x459904
mov dword [ecx], vtable.CXDialogItem.0
mov dword [ecx + 0x18], 0x82
mov dword [ecx + 0x1c], 0
jmp 0x459906
xor ecx, ecx
movzx eax, word [esi + 0x508]
mov dword [esi + eax*4 + 4], ecx
movzx eax, word [esi + 0x508]
mov ebx, dword [esi + eax*4 + 4]
call dword [ebp - 0x474]
shr eax, 0x10
mov dword [ebp - 0x470], eax
call dword [ebp - 0x474]
movzx ecx, ax
lea eax, [esi + 0xc4]
mov dword [ebx + 0x18], 0x82
test eax, eax
je 0x4599a0
mov eax, dword [eax]
shl eax, 2
cdq
movsx edi, cx
idiv edi
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x470]
movsx ecx, ax
mov eax, dword [esi + 0xc8]
shl eax, 3
cdq
idiv ecx
mov word [ebx + 0xe], ax
mov eax, dword [esi + 0xcc]
sub eax, dword [esi + 0xc4]
shl eax, 2
cdq
idiv edi
mov edi, dword [ebp - 0x468]
mov word [ebx + 0x10], ax
mov eax, dword [esi + 0xd0]
sub eax, dword [esi + 0xc8]
shl eax, 3
cdq
idiv ecx
movzx eax, ax
jmp 0x4599ae
xor eax, eax
mov dword [ebx + 0xc], eax
mov eax, 0xa
mov word [ebx + 0x10], ax
mov word [ebx + 0x12], ax
mov eax, dword [ebp - 0x464]
mov dword [ebx + 8], 0
mov word [ebx + 0x14], ax
mov dword [ebx + 4], 0x50000000
test edi, edi
je 0x4599e4
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4599d3
sub ecx, edx
sar ecx, 1
jmp 0x4599e6
xor ecx, ecx
lea eax, [ecx + 1]
mov edx, 2
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00525ad5
add esp, 4
mov edx, eax
test edi, edi
mov dword [ebx + 0x1c], edx
mov ecx, 0x5a13b8
cmovne ecx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x459a11
inc word [esi + 0x508]
lea eax, [esi + 0xdc]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x464], ebx
cmp word [eax], bx
jne 0x459b4a
mov edx, dword [ebp - 0x45c]
mov eax, edx
and eax, 0xf
cmp eax, 9
ja case.default.0x459a56
jmp dword [eax*4 + 0x45aa28]
mov ecx, dword [ebp - 0x46c]
mov edi, dword [esi + 0x610]
add edi, dword [esi + 0x5f8]
add edi, dword [ecx]
jmp 0x459b10
mov edi, dword [esi + 0x61c]
add edi, dword [esi + 0x5e4]
jmp 0x459b0a
mov ecx, dword [ebp - 0x46c]
mov ebx, 2
mov edi, dword [esi + 0x5e4]
add edi, dword [ecx]
jmp case.default.0x459a56
mov edi, dword [esi + 0x5fc]
add edi, dword [esi + 0x5f8]
jmp 0x459b0a
mov edi, dword [esi + 0x608]
mov ebx, 1
jmp case.default.0x459a56
mov edi, dword [esi + 0x608]
mov ebx, 2
add edi, dword [esi + 0x5e0]
jmp case.default.0x459a56
mov edi, dword [esi + 0x610]
mov ebx, 2
add edi, dword [esi + 0x5e0]
jmp case.default.0x459a56
mov edi, dword [esi + 0x618]
add edi, dword [esi + 0x614]
jmp 0x459b0a
mov edi, dword [esi + 0x620]
mov ebx, 2
add edi, dword [esi + 0x600]
jmp case.default.0x459a56
mov edi, dword [esi + 0x620]
add edi, dword [esi + 0x600]
add edi, dword [esi + 0x5e0]
mov ebx, 3
test edx, 0x8000000
je 0x459b29
test dl, 7
je 0x459b29
add edi, dword [esi + 0x624]
inc ebx
test edx, 0x10000000
je 0x459c04
test dl, 7
je 0x459c04
add edi, dword [esi + 0x604]
inc ebx
jmp 0x459c04
lea edx, [ebp - 0x20c]
mov ecx, eax
sub edx, eax
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x459b54
xor ebx, ebx
lea eax, [ebp - 0x20c]
push ebx
push 0x5a8cfc
push eax
call fcn.00576170
mov edx, eax
add esp, 0xc
test edx, edx
je 0x459bfe
xor edi, edi
cmp ebx, 4
jge 0x459bf6
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x470], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x459b97
sub ecx, dword [ebp - 0x470]
lea eax, [ebp - 0x48c]
push eax
sar ecx, 1
push ecx
push edx
push dword [ebp - 0x478]
call dword [ebp - 0x460]
mov eax, dword [ebp - 0x48c]
mov ecx, dword [ebp - 0x484]
add eax, 0x14
cmp eax, ecx
cmovg ecx, eax
cmp dword [esi + 0x68], 0
je 0x459bdc
add ecx, dword [esi + 0x7c]
push 0
push 0x5a8cfc
push 0
add edi, ecx
call fcn.00576170
mov edx, eax
add esp, 0xc
inc ebx
test edx, edx
jne 0x459b87
mov dword [ebp - 0x464], edi
xor edi, edi
mov edx, dword [ebp - 0x45c]
mov eax, edx
and eax, 0x4000
mov dword [ebp - 0x488], eax
je 0x459c1a
inc ebx
add edi, dword [esi + 0x5f4]
cmp dword [esi + 0x54], 0
je 0x459c27
inc ebx
add edi, dword [esi + 0x60c]
mov eax, edx
and eax, 0x1000000
mov dword [ebp - 0x470], eax
je 0x459c3c
or dword [esi + 0x5c], 1
jmp 0x459c56
test edx, 0x2000000
je 0x459c4a
or dword [esi + 0x5c], 2
jmp 0x459c56
test edx, 0x4000000
je 0x459c56
or dword [esi + 0x5c], 4
mov eax, dword [esi + 0xd0]
mov ecx, dword [ebp - 0x230]
cmp eax, ecx
cmovg ecx, eax
add ecx, 5
cmp dword [esi + 0x4ec], 0
jne 0x459c7e
cmp dword [esi + 0x4fc], 0
mov edx, ecx
je 0x459c83
lea edx, [ecx + 9]
mov ecx, edx
lea eax, [ebx + ebx*2]
lea eax, [edi + eax*2]
mov edi, dword [ebp - 0x464]
add edi, 0xfffffffa
add edi, eax
mov eax, dword [esi + 0x80]
add eax, edx
mov dword [ebp - 0x46c], edi
push eax
push edi
push ecx
push 0
lea eax, [ebp - 0x24c]
push eax
call dword [ebp - 0x454]
cmp dword [esi + 0x64], ebx
jle 0x459cc0
mov dword [esi + 0x64], 1
cmp dword [ebp - 0x470], 0
je 0x459cd6
mov ecx, 3
mov dword [ebp - 0x464], ecx
jmp 0x459d17
mov eax, dword [ebp - 0x45c]
test eax, 0x2000000
je 0x459cf0
mov ecx, 4
mov dword [ebp - 0x464], ecx
jmp 0x459d17
and eax, 0x4000000
mov ecx, 5
mov edx, 0xffffffff
mov ebx, 0
cmove ecx, edx
mov dword [ebp - 0x468], ebx
mov dword [ebp - 0x464], ecx
test eax, eax
je 0x459d2a
mov ebx, dword [esi + ecx*4 + 0x5dc]
add ebx, dword [esi + 0x84]
mov dword [ebp - 0x468], ebx
mov edx, dword [ebp - 0x244]
sub edx, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x224]
add eax, 0xc
mov edi, dword [ebp - 0x22c]
mov dword [ebp - 0x220], eax
lea eax, [edx + 0x20]
cmp ecx, eax
cmovle ecx, eax
mov eax, ecx
mov dword [ebp - 0x224], ecx
sub eax, edi
cmp eax, ebx
jge 0x459d70
lea ecx, [ebx + 0x10]
mov dword [ebp - 0x224], ecx
mov ebx, dword [ebp - 0x248]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x470], ebx
sub eax, edx
cdq
sub eax, edx
sar eax, 1
cmp dword [esi + 0xa4], 0
mov edi, eax
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x458], eax
je 0x459db3
sub ecx, dword [ebp - 0x46c]
lea edi, [ecx - 0x10]
mov dword [ebp - 0x474], edi
mov dword [ebp - 0x458], edi
cmp word [esi + 0xdc], 0
jne 0x45a6f1
mov eax, dword [ebp - 0x45c]
and eax, 0xf
cmp eax, 9
ja case.default.0x459dd3
jmp dword [eax*4 + 0x45aa50]
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x608]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0xec0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 1
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x608]
add eax, 6
add edi, eax
or dword [esi + 0x5c], 0x10
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x608]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0xec0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 1
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x608]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5e0]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x6f0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 2
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5e0]
add eax, 6
add edi, eax
or dword [esi + 0x5c], 8
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x620]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x1370]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 6
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x620]
add eax, 6
add edi, eax
test dword [ebp - 0x45c], 0x8000000
je 0x459f6c
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x624]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x1438]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x13
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x624]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x600]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0xd30]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 7
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x600]
add eax, 6
add edi, eax
test dword [ebp - 0x45c], 0x10000000
mov dword [ebp - 0x458], edi
je 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x604]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0xdf8]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x14
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x604]
add eax, 6
add edi, eax
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x620]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x1370]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 6
push 0x80
call fcn.0045ad70
mov ecx, dword [esi + 0x620]
add ecx, 6
add ecx, edi
test dword [ebp - 0x45c], 0x8000000
mov edi, dword [ebp - 0x454]
mov dword [ebp - 0x460], ecx
je 0x45a0cb
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x624]
add eax, ecx
push eax
push ebx
push ecx
lea eax, [ebp - 0x21c]
push eax
call edi
lea eax, [esi + 0x1438]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x13
push 0x80
call fcn.0045ad70
mov ecx, dword [ebp - 0x460]
add ecx, 6
add ecx, dword [esi + 0x624]
mov dword [ebp - 0x460], ecx
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x600]
add eax, ecx
push eax
push ebx
push ecx
lea eax, [ebp - 0x21c]
push eax
call edi
lea eax, [esi + 0xd30]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 7
push 0x80
call fcn.0045ad70
mov ecx, dword [ebp - 0x460]
add ecx, 6
add ecx, dword [esi + 0x600]
test dword [ebp - 0x45c], 0x10000000
mov dword [ebp - 0x460], ecx
je 0x45a173
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x604]
add eax, ecx
push eax
push ebx
push ecx
lea eax, [ebp - 0x21c]
push eax
call edi
lea eax, [esi + 0xdf8]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x14
push 0x80
call fcn.0045ad70
mov ecx, dword [ebp - 0x460]
add ecx, 6
add ecx, dword [esi + 0x604]
mov dword [ebp - 0x460], ecx
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5e0]
add eax, ecx
push eax
push ebx
push ecx
lea eax, [ebp - 0x21c]
push eax
call edi
lea eax, [esi + 0x6f0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 2
push 0x80
call fcn.0045ad70
mov ecx, dword [ebp - 0x460]
mov edi, dword [esi + 0x5e0]
add ecx, 6
add edi, ecx
or dword [esi + 0x5c], 8
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5dc]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x628]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 3
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5dc]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x610]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x1050]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 4
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x610]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5f8]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0xba0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 5
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5f8]
add eax, 6
add edi, eax
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x610]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x1050]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 4
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x610]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5e0]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x6f0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 2
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5e0]
add eax, 6
add edi, eax
or dword [esi + 0x5c], 8
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5e4]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x7b8]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0xb
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5e4]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5dc]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x628]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 3
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5dc]
add eax, 6
add edi, eax
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5e0]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x6f0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 2
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5e0]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x61c]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x12a8]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0xa
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x61c]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5e4]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x7b8]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0xb
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5e4]
add eax, 6
add edi, eax
or dword [esi + 0x5c], 8
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x614]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x1118]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0xe
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x614]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x618]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x11e0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0xf
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x618]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5e0]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x6f0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 2
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5e0]
add eax, 6
add edi, eax
or dword [esi + 0x5c], 8
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5f8]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0xba0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 5
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5f8]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5fc]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0xc68]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x10
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5fc]
add eax, 6
add edi, eax
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5e0]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0x6f0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 2
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5e0]
add eax, 6
add edi, eax
or dword [esi + 0x5c], 8
mov dword [ebp - 0x458], edi
jmp 0x45a825
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x608]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0xec0]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 1
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x608]
add eax, 6
add edi, eax
mov dword [ebp - 0x458], edi
jmp 0x45a825
or dword [esi + 0x5c], 8
lea eax, [ebp - 0x20c]
push 0x208
push 0
push eax
call fcn.0055dac0
push 0x103
lea eax, [esi + 0xdc]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.00574916
xor eax, eax
push eax
mov dword [ebp - 0x45c], eax
lea eax, [ebp - 0x20c]
push 0x5a8cfc
push eax
call fcn.00576170
mov edx, eax
add esp, 0x24
mov dword [ebp - 0x46c], edx
test edx, edx
je 0x45a825
xor eax, eax
nop
cmp eax, 4
jge 0x45a825
mov ecx, edx
lea edi, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45a760
sub ecx, edi
lea eax, [ebp - 0x214]
push eax
sar ecx, 1
push ecx
push edx
push dword [ebp - 0x478]
call dword [ebp - 0x460]
mov eax, dword [ebp - 0x214]
mov ecx, dword [ebp - 0x484]
add eax, 0x14
cmp eax, ecx
cmovg ecx, eax
cmp dword [esi + 0x68], 0
je 0x45a7a1
add ecx, dword [esi + 0x7c]
mov edx, dword [ebp - 0x474]
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
lea edi, [ecx + edx]
push edi
push ebx
push edx
lea eax, [ebp - 0x25c]
push eax
call dword [ebp - 0x454]
push dword [ebp - 0x46c]
lea eax, [ebp - 0x25c]
mov ecx, esi
push eax
mov eax, dword [ebp - 0x45c]
add eax, 0x17
push eax
push 0x80
call fcn.0045ad70
push 0
lea eax, [edi + 6]
push 0x5a8cfc
push 0
mov dword [ebp - 0x474], eax
mov edi, eax
mov dword [ebp - 0x458], eax
call fcn.00576170
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x45c]
inc eax
mov dword [ebp - 0x46c], edx
mov dword [ebp - 0x45c], eax
test edx, edx
jne 0x45a750
cmp dword [ebp - 0x488], 0
je 0x45a87f
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x5f4]
add eax, edi
push eax
push ebx
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x454]
lea eax, [esi + 0xad8]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x12c
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x5f4]
add eax, 6
add edi, eax
mov dword [ebp - 0x458], edi
cmp dword [esi + 0x54], 0
je 0x45a8da
mov eax, dword [esi + 0x80]
add eax, ebx
push eax
mov eax, dword [esi + 0x60c]
add eax, edi
push eax
push ebx
mov ebx, dword [ebp - 0x454]
lea eax, [ebp - 0x21c]
push edi
push eax
call ebx
lea eax, [esi + 0xf88]
mov ecx, esi
push eax
lea eax, [ebp - 0x21c]
push eax
push 0x12d
push 0x80
call fcn.0045ad70
mov eax, dword [esi + 0x60c]
add eax, 6
add eax, edi
mov dword [ebp - 0x458], eax
jmp 0x45a8e0
mov ebx, dword [ebp - 0x454]
mov edi, dword [ebp - 0x464]
cmp edi, 0xffffffff
je 0x45a943
push dword [esi + 0x84]
lea eax, [ebp - 0x21c]
push dword [ebp - 0x468]
push 0
push 0
push eax
call ebx
imul eax, edi, 0xc8
mov ecx, esi
add eax, 0x628
add eax, esi
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x458]
push eax
call fcn.0045aba0
mov eax, dword [ebp - 0x240]
mov edi, dword [ebp - 0x220]
cmp eax, edi
jl 0x45a95c
lea edi, [eax + 0x10]
mov dword [ebp - 0x220], edi
mov eax, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x224]
add eax, 0x10
cmp ecx, eax
mov ebx, dword [ebp - 0x478]
push dword [ebp - 0x490]
cmovl ecx, eax
xor eax, eax
mov dword [ebp - 0x224], ecx
sub ecx, dword [ebp - 0x22c]
mov dword [esi + 0x50a], eax
shl ecx, 2
mov eax, ecx
sub edi, dword [ebp - 0x228]
cdq
idiv dword [ebp - 0x47c]
shl edi, 3
mov word [esi + 0x50e], ax
mov eax, edi
cdq
idiv dword [ebp - 0x480]
push ebx
mov word [esi + 0x510], ax
call dword [ebp - 0x494]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0055a658
mov esp, ebp
pop ebp
ret 0x14