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

Disassembly:
sub esp, 0x174
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x30], 0
mov ax, word [esi + 0xce0]
mov ecx, dword [esi + 0x38220]
mov bx, word [esi + 0xcdc]
mov bp, word [esi + 0xcde]
sub ax, 5
mov dword [esp + 0x1c], ebx
test ecx, ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x2c], eax
je 0x4682bd
mov eax, dword [esi + 0x72578]
push 0
push 0
push eax
movsx edx, bp
movsx eax, bx
push 2
push edx
push eax
call fcn.0049e020
mov ecx, dword [esi + 0x38244]
test ecx, ecx
je 0x4682e1
mov edx, dword [esi + 0x72578]
push 0
push 0
push edx
movsx eax, bp
movsx edx, bx
push 0x15
push eax
push edx
call fcn.0049e020
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0xc4]
mov dword [esp + 0x18], 0x2d
rep stosd dword es:[edi], eax
mov ecx, 0x10
lea edi, [esp + 0x104]
rep stosd dword es:[edi], eax
mov ecx, 0x10
lea edi, [esp + 0x144]
rep stosd dword es:[edi], eax
mov al, byte [esi + 0xd66]
cmp al, 0xff
je 0x468ce8
test al, al
jne 0x468d39
mov eax, dword [esi + 0xc94]
mov dword [esp + 0x24], 0
test eax, eax
jle 0x468968
mov dword [esp + 0x20], 0
movsx eax, word [esi + 0xce4]
mov ecx, dword [esp + 0x24]
add ecx, eax
mov eax, dword [esi + ecx*4 + 0x6f944]
test eax, eax
je 0x468946
cmp ecx, 0x79
jge 0x468946
lea edx, [esp + 0x144]
lea ecx, [esp + 0x104]
push edx
lea edx, [esp + 0xc8]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00460ea0
movsx ebp, word [esp + 0x1c]
movsx eax, word [esp + 0x188]
lea ecx, [ebp + 0x1e]
cmp eax, ecx
jle 0x4688f6
lea edx, [ebp + 0xd2]
cmp eax, edx
jge 0x4688f6
movsx edx, word [esp + 0x14]
mov ecx, dword [esp + 0x20]
movsx eax, word [esp + 0x18c]
lea edi, [edx + ecx + 0x6e]
cmp eax, edi
mov dword [esp + 0x10], edi
jl 0x4688fa
lea edx, [edx + ecx + 0x7c]
cmp eax, edx
jg 0x4688fa
lea ebp, [esi + 0x7f1c]
mov dword [esp + 0x30], 1
mov ecx, ebp
call fcn.00402880
movsx eax, word [esp + 0x2c]
movsx edi, word [esp + 0x1c]
lea edx, [esp + 0x84]
lea ebx, [eax + edi]
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xf]
push ecx
push ebx
push eax
push edi
push edx
call dword [sym.imp.user32.dll_SetRect]
lea eax, [esp + 0xc4]
push 0xffffff
lea ecx, [esp + 0x88]
push eax
push ecx
mov ecx, ebp
call fcn.004028e0
mov ecx, ebp
call fcn.004028c0
mov eax, dword [esi + 0x72e24]
mov edx, dword [esp + 0x18]
test eax, eax
movsx eax, word [esp + 0x14]
je 0x46848f
add eax, edx
mov ecx, ebp
mov dword [esp + 0x10], eax
call fcn.00402880
mov eax, dword [esp + 0x10]
add edi, 0x46
lea edx, [esp + 0x44]
mov dword [esp + 0x28], edi
lea ecx, [eax + 0xf]
push ecx
push ebx
push eax
push edi
push edx
call dword [sym.imp.user32.dll_SetRect]
lea eax, [esp + 0xc4]
push 0x32ff00
push eax
lea ecx, [esp + 0x4c]
jmp 0x4684d0
add eax, edx
mov ecx, ebp
mov dword [esp + 0x10], eax
call fcn.00402880
mov eax, dword [esp + 0x10]
add edi, 0x46
lea edx, [esp + 0xb4]
mov dword [esp + 0x28], edi
lea ecx, [eax + 0xf]
push ecx
push ebx
push eax
push edi
push edx
call dword [sym.imp.user32.dll_SetRect]
lea eax, [esp + 0xc4]
push 0xffffff
push eax
lea ecx, [esp + 0xbc]
push ecx
mov ecx, ebp
call fcn.004028e0
mov ecx, ebp
call fcn.004028c0
lea edi, [esp + 0x104]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x468544
mov eax, dword [esp + 0x18]
mov ecx, ebp
movsx edi, word [esp + 0x14]
add eax, 0xf
mov dword [esp + 0x18], eax
add edi, eax
call fcn.00402880
mov eax, dword [esp + 0x28]
lea edx, [edi + 0xf]
push edx
push ebx
push edi
lea ecx, [esp + 0x80]
push eax
push ecx
call dword [sym.imp.user32.dll_SetRect]
lea edx, [esp + 0x104]
push 0x969696
lea eax, [esp + 0x78]
push edx
push eax
mov ecx, ebp
call fcn.004028e0
mov ecx, ebp
call fcn.004028c0
lea edi, [esp + 0x144]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4685ad
mov eax, dword [esp + 0x18]
movsx ecx, word [esp + 0x14]
add eax, 0xf
mov dword [esp + 0x18], eax
lea edi, [ecx + eax]
mov ecx, ebp
call fcn.00402880
mov edx, dword [esp + 0x28]
lea ecx, [edi + 0xf]
push ecx
push ebx
push edi
lea eax, [esp + 0xb0]
push edx
push eax
call dword [sym.imp.user32.dll_SetRect]
lea ecx, [esp + 0x144]
push 0x969696
lea edx, [esp + 0xa8]
push ecx
push edx
mov ecx, ebp
call fcn.004028e0
mov ecx, ebp
call fcn.004028c0
movsx eax, word [esi + 0xce4]
add eax, dword [esp + 0x24]
mov ecx, dword [esi + eax*4 + 0x6f944]
mov ax, word [ecx + 0x1e]
test ax, ax
je 0x468646
test byte [ecx + 0x48], 1
je 0x468646
mov edi, dword [esp + 0x18]
movsx ecx, ax
add edi, 0xf
push ecx
mov dword [esp + 0x1c], edi
lea edi, [esi + 0x730ed]
push 0x4c2a6c
push 0x4c2a64
push edi
call dword [sym.imp.user32.dll_wsprintfA]
movsx eax, word [esp + 0x24]
mov edx, dword [esp + 0x28]
add esp, 0x10
add eax, edx
mov ecx, ebp
mov dword [esp + 0x10], eax
call fcn.00402880
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
lea ecx, [eax + 0xf]
push ecx
push ebx
push eax
lea eax, [esp + 0xa0]
push edx
push eax
call dword [sym.imp.user32.dll_SetRect]
push 0x969696
lea ecx, [esp + 0x98]
push edi
push ecx
mov ecx, ebp
call fcn.004028e0
mov ecx, ebp
call fcn.004028c0
movsx edx, word [esi + 0xce4]
mov eax, dword [esp + 0x24]
add edx, eax
mov eax, 0x4c2830
mov edi, dword [esi + edx*4 + 0x6f944]
mov dword [esp + 0x10], edi
add edi, 4
mov dl, byte [edi]
mov cl, dl
cmp dl, byte [eax]
jne 0x46868a
test cl, cl
je 0x468686
mov dl, byte [edi + 1]
mov cl, dl
cmp dl, byte [eax + 1]
jne 0x46868a
add edi, 2
add eax, 2
test cl, cl
jne 0x468666
xor eax, eax
jmp 0x46868f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x468705
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
lea edi, [esi + 0x730ed]
add edx, 0xf
mov ax, word [ecx + 0x3a]
mov dword [esp + 0x18], edx
push eax
push 0x4c2a38
push edi
call dword [sym.imp.user32.dll_wsprintfA]
movsx eax, word [esp + 0x20]
mov edx, dword [esp + 0x24]
add esp, 0xc
add eax, edx
mov ecx, ebp
mov dword [esp + 0x10], eax
call fcn.00402880
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
lea ecx, [eax + 0xf]
push ecx
push ebx
push eax
lea eax, [esp + 0x60]
push edx
push eax
call dword [sym.imp.user32.dll_SetRect]
push 0x969696
lea ecx, [esp + 0x58]
push edi
push ecx
mov ecx, ebp
call fcn.004028e0
mov ecx, ebp
call fcn.004028c0
movsx edx, word [esi + 0xce4]
add edx, dword [esp + 0x24]
mov eax, dword [esi + edx*4 + 0x6f944]
mov cl, byte [eax + 0x1a]
test cl, cl
je 0x4687d6
mov cx, word [eax + 0x40]
cmp cx, 0x44c
jb 0x4687d6
mov edi, dword [esp + 0x18]
and ecx, 0xffff
add edi, 0xf
mov eax, ecx
mov dword [esp + 0x18], edi
mov edi, 0x64
cdq
idiv edi
mov dword [esp + 0x10], 0
test edx, edx
je 0x468760
mov dword [esp + 0x10], 1
mov eax, 0x51eb851f
lea edi, [esi + 0x730ed]
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, ecx
push edx
push 0x4c2a48
push edi
call dword [sym.imp.user32.dll_wsprintfA]
movsx eax, word [esp + 0x20]
mov ecx, dword [esp + 0x24]
add esp, 0xc
add eax, ecx
mov ecx, ebp
mov dword [esp + 0x10], eax
call fcn.00402880
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x64]
lea edx, [eax + 0xf]
push edx
push ebx
push eax
mov eax, dword [esp + 0x34]
push eax
push ecx
call dword [sym.imp.user32.dll_SetRect]
push 0x969696
lea edx, [esp + 0x68]
push edi
push edx
mov ecx, ebp
call fcn.004028e0
mov ecx, ebp
call fcn.004028c0
movsx eax, word [esi + 0xce4]
add eax, dword [esp + 0x24]
mov eax, dword [esi + eax*4 + 0x6f944]
mov cl, byte [eax + 0x1b]
test cl, cl
jne 0x468826
mov ecx, dword [esi + 0x72588]
push 0
movsx edx, word [eax + 0x22]
push 0
push ecx
movsx ecx, word [esp + 0x20]
movsx eax, word [eax + 0x20]
add ecx, 0x44
push edx
push ecx
movsx ecx, word [esp + 0x30]
add ecx, 0x3c
push ecx
mov ecx, dword [esi + eax*4 + 0x385dc]
call fcn.0049e020
jmp 0x468946
mov dl, byte [eax + 0x1a]
cmp dl, 7
je 0x4688b4
cmp dl, 8
je 0x4688b4
cmp dl, 9
je 0x4688b4
mov edx, dword [esi + 0x72588]
xor edi, edi
mov di, word [esi + 0x7305c]
push edx
movsx ecx, cl
xor edx, edx
mov dx, word [esi + ecx*2 + 0x7305c]
sub edx, edi
xor edi, edi
mov di, word [esi + 0x7303c]
push edx
xor edx, edx
mov dx, word [esi + ecx*2 + 0x7303c]
sub edx, edi
push edx
xor edx, edx
mov dx, word [esi + ecx*2 + 0x7301c]
xor ecx, ecx
mov cx, word [esi + 0x7301c]
sub edx, ecx
movsx ecx, word [esp + 0x20]
push edx
add ecx, 0x44
movsx edx, word [eax + 0x22]
movsx eax, word [eax + 0x20]
push edx
push ecx
movsx ecx, word [esp + 0x34]
add ecx, 0x3c
push ecx
mov ecx, dword [esi + eax*4 + 0x385dc]
call fcn.004a1f40
jmp 0x468946
mov edx, dword [esi + 0x72588]
xor edi, edi
mov di, word [esi + 0x7305c]
push edx
movsx ecx, cl
xor edx, edx
mov dx, word [esi + ecx*2 + 0x730bc]
sub edx, edi
xor edi, edi
mov di, word [esi + 0x7303c]
push edx
xor edx, edx
mov dx, word [esi + ecx*2 + 0x7309c]
sub edx, edi
push edx
xor edx, edx
mov dx, word [esi + ecx*2 + 0x7307c]
jmp 0x46887c
mov ecx, dword [esp + 0x20]
movsx edx, word [esp + 0x14]
lea edi, [esi + 0x7f1c]
lea ebx, [edx + ecx + 0x6e]
mov ecx, edi
call fcn.00402880
movsx ecx, word [esp + 0x2c]
lea eax, [ebx + 0xf]
add ecx, ebp
push eax
push ecx
push ebx
lea edx, [esp + 0x40]
push ebp
push edx
call dword [sym.imp.user32.dll_SetRect]
lea eax, [esp + 0xc4]
push 0
lea ecx, [esp + 0x38]
push eax
push ecx
mov ecx, edi
call fcn.004028e0
mov ecx, edi
call fcn.004028c0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov ecx, dword [esi + 0xc94]
inc eax
add edx, 0xf
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
jl 0x468349
xor ebp, ebp
lea eax, [esi + 0x6f944]
mov dword [esp + 0x20], ebp
mov ecx, 0x79
cmp dword [eax], 0
je 0x46897f
inc ebp
add eax, 4
dec ecx
jne 0x468979
mov eax, dword [esi + 0xc94]
mov dword [esp + 0x20], ebp
cmp ebp, eax
jle 0x468a1b
movsx edx, word [esi + 0xce4]
mov dword [esp + 0x10], edx
mov ecx, ebp
fild dword [esp + 0x10]
sub ecx, eax
mov dword [esp + 0x10], ecx
fmul qword [0x4b72f0]
fild dword [esp + 0x10]
fdivp st(1)
call fcn.004a7234
mov ecx, dword [esi + 0x38220]
mov edi, eax
test ecx, ecx
je 0x4689e9
mov edx, dword [esi + 0x72578]
push 0
movsx eax, word [esp + 0x18]
push 0
push edx
movsx edx, word [esp + 0x28]
push 3
push eax
push edx
call fcn.0049e020
mov ecx, dword [esi + 0x38220]
test ecx, ecx
je 0x468a1b
movsx edx, word [esp + 0x14]
mov eax, dword [esi + 0x72578]
push 0
push 0
push eax
lea eax, [edx + edi + 0x23]
push 7
movsx edx, word [esp + 0x2c]
add edx, 0xf2
push eax
push edx
call fcn.0049e020
mov al, byte [esp + 0x194]
test al, al
je 0x468a4f
mov eax, 0x3b
mov cl, byte [esi + eax + 0x7349a]
test cl, cl
jne 0x468a8f
dec eax
cmp eax, 0x29
jge 0x468a2b
mov eax, 0x26
mov cl, byte [esi + eax + 0x7349a]
test cl, cl
jne 0x468a8f
dec eax
jns 0x468a41
mov dword [esi + 0xd68], 0
mov eax, 0x3b
mov cl, byte [esi + eax + 0x7349a]
test cl, cl
jne 0x468b70
dec eax
cmp eax, 0x29
jge 0x468a5e
mov eax, 0x26
mov cl, byte [esi + eax + 0x7349a]
test cl, cl
jne 0x468b70
dec eax
jns 0x468a78
jmp 0x468bcf
movsx eax, byte [eax + esi + 0x7349a]
cmp eax, 0xe
jne 0x468a4f
cmp ebp, dword [esi + 0xc94]
jle 0x468a4f
movsx edi, word [esp + 0x1c]
movsx edx, word [esp + 0x188]
lea ebx, [edi + 0xe6]
cmp edx, ebx
jl 0x468a59
lea eax, [edi + 0x104]
cmp edx, eax
jg 0x468b29
movsx ecx, word [esp + 0x14]
movsx eax, word [esp + 0x18c]
lea ebp, [ecx + 0x28]
cmp eax, ebp
jl 0x468b25
lea ebp, [ecx + 0x140]
cmp eax, ebp
jg 0x468b25
mov ebp, dword [esp + 0x20]
sub eax, ecx
sub eax, 0x23
mov ecx, ebp
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xc94]
fild dword [esp + 0x10]
sub ecx, eax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmulp st(1)
fmul qword [0x4b72e0]
fadd qword [0x4b72e8]
call fcn.004a7234
mov word [esi + 0xce4], ax
jmp 0x468a59
mov ebp, dword [esp + 0x20]
cmp edx, ebx
jl 0x468a59
add edi, 0x104
cmp edx, edi
jg 0x468a59
movsx eax, word [esp + 0x14]
movsx ecx, word [esp + 0x18c]
lea edx, [eax + 0xa]
cmp ecx, edx
jle 0x468a59
add eax, 0x28
cmp ecx, eax
jge 0x468a59
mov word [esi + 0xce4], 0
jmp 0x468a59
movsx eax, byte [eax + esi + 0x7349a]
cmp eax, 0xe
jne 0x468bcf
mov ax, word [esp + 0x190]
test ax, ax
je 0x468bcf
cmp ebp, 0x32
jle 0x468bae
movsx ecx, ax
mov eax, 0x77777777
imul ecx
sub edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
add word [esi + 0xce4], dx
jmp 0x468bc6
test ax, ax
jle 0x468bbd
dec word [esi + 0xce4]
test ax, ax
jge 0x468bc6
inc word [esi + 0xce4]
mov word [esi + 0x38124], 0
mov eax, dword [esi + 0xc94]
cmp ebp, eax
jle 0x468bf9
movsx edx, word [esi + 0xce4]
mov ecx, ebp
sub ecx, eax
cmp edx, ecx
jle 0x468bf5
mov cx, bp
sub cx, ax
mov word [esi + 0xce4], cx
cmp ebp, eax
jg 0x468c02
mov word [esi + 0xce4], 0
cmp word [esi + 0xce4], 0
jge 0x468c15
mov word [esi + 0xce4], 0
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x468d39
movsx ebx, word [esp + 0x14]
add esi, 0x7f1c
mov ecx, esi
call fcn.00402880
movsx edi, word [esp + 0x1c]
movsx edx, word [esp + 0x2c]
lea eax, [ebx + 0x2d]
lea ebp, [edx + edi]
lea edx, [esp + 0x34]
lea ecx, [eax + 0xf]
push ecx
push ebp
push eax
push edi
push edx
call dword [sym.imp.user32.dll_SetRect]
push 0
lea eax, [esp + 0x38]
push 0x4c2dc8
push eax
mov ecx, esi
call fcn.004028e0
mov ecx, esi
call fcn.004028c0
mov ecx, esi
call fcn.00402880
lea eax, [ebx + 0x3c]
lea edx, [esp + 0x34]
lea ecx, [eax + 0xf]
push ecx
push ebp
push eax
push edi
push edx
call dword [sym.imp.user32.dll_SetRect]
push 0
lea eax, [esp + 0x38]
push 0x4c2d9c
push eax
mov ecx, esi
call fcn.004028e0
mov ecx, esi
call fcn.004028c0
mov ecx, esi
add ebx, 0x4b
call fcn.00402880
lea ecx, [ebx + 0xf]
lea edx, [esp + 0x34]
push ecx
push ebp
push ebx
push edi
push edx
call dword [sym.imp.user32.dll_SetRect]
push 0
lea eax, [esp + 0x38]
push 0x4c2d7c
push eax
mov ecx, esi
call fcn.004028e0
mov ecx, esi
call fcn.004028c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x174
ret 0x10
add esi, 0x7f1c
mov ecx, esi
call fcn.00402880
movsx edi, bp
movsx eax, bx
push 0
lea ecx, [edi + 0x46]
lea ebx, [eax + 0x2d]
push 0x4c2d68
push ecx
push ebx
mov ecx, esi
call fcn.00402520
mov ecx, esi
call fcn.004028c0
mov ecx, esi
call fcn.00402880
push 0
add edi, 0x55
push 0x4c2d40
push edi
push ebx
mov ecx, esi
call fcn.00402520
mov ecx, esi
call fcn.004028c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x174
ret 0x10