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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffde0
mov ebp, dword [0x4be784]
call fcn.004a7468
lea eax, [esp + 0x124]
mov edx, 0xf0
call fcn.004066e4
mov dl, 0x4e
mov ax, 0x22
call fcn.0048841c
test eax, eax
je 0x451bf0
mov word [esp + 4], 0x200
mov edi, 1
lea ebx, [ebp + 0x1880]
lea esi, [esp + 0x124]
cmp byte [ebx], 0
je 0x4514ca
mov edx, esi
mov al, byte [ebx]
call fcn.004a03f8
test al, al
jne 0x4514ab
mov ecx, dword [0x4bedb0]
xor edx, edx
mov al, byte [ebx]
call fcn.0049e530
mov edx, dword [0x4bedb0]
mov ax, 0xa
call fcn.004acdac
jmp 0x451bf0
mov al, byte [ebx]
test al, al
jge 0x4514c2
movsx eax, al
mov edx, dword [0x4becf0]
mov ax, word [edx + eax*2 + 0x54]
mov word [esi], ax
mov ax, word [esi]
mov word [esp + 4], ax
inc edi
add esi, 0x78
inc ebx
cmp edi, 3
jne 0x451476
cmp byte [ebp + 0x1881], 0
je 0x4515f7
cmp byte [ebp + 0x1880], 0
je 0x451514
mov ax, word [esp + 0x124]
cmp ax, word [esp + 0x19c]
je 0x451572
mov ax, 0x1fc
call fcn.004aa600
mov edx, 3
call fcn.004b12a8
jmp 0x45144a
lea eax, [ebp + 0x600]
call fcn.004b2314
mov eax, dword [0x4be4c4]
fistp qword [eax]
wait
mov eax, dword [0x4be4c4]
push dword [eax + 4]
push dword [eax]
movzx eax, word [esp + 0x1a4]
mov dword [esp + 0x21c], eax
fild dword [esp + 0x21c]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004af060
test eax, eax
je 0x451572
mov ax, 0x2e7
call fcn.004aa600
mov edx, 0x77
call fcn.004b12a8
test al, al
je 0x45144a
cmp byte [ebp + 0x1880], 0
je 0x45169c
mov eax, dword [ebp + 0x17a0]
add eax, dword [ebp + 0x17a4]
dec eax
movsx edx, byte [ebp + 0x1881]
mov ecx, dword [0x4be408]
mov edx, dword [ecx + edx*4 + 0xa8]
dec edx
cmp eax, edx
jbe 0x45169c
mov ax, 0xd1
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004b81b0
push 0x451bfc
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov ax, 0x365
call fcn.004aa600
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4bedb0]
mov edx, 3
call fcn.004b12a8
jmp 0x45144a
xor eax, eax
mov al, byte [ebp + 0x700]
push eax
call sub.user32.dll_CharUpperA
mov ebx, eax
sub bl, 0x40
cmp bl, 0x1a
ja 0x45169c
lea ecx, [esp + 0x18]
lea edx, [esp + 0x10]
mov eax, ebx
call fcn.0041130c
test eax, eax
je 0x45169c
mov eax, dword [ebp + 0x17a4]
mov dword [esp + 0x218], eax
xor eax, eax
mov dword [esp + 0x21c], eax
fild qword [esp + 0x218]
mov eax, dword [0x4be4c4]
fistp qword [eax]
wait
movzx eax, word [esp + 0x124]
mov dword [esp + 0x214], eax
fild dword [esp + 0x214]
mov eax, dword [0x4be4c4]
fild qword [eax]
fmulp st(1)
mov eax, dword [0x4be4c4]
fistp qword [eax]
wait
fild qword [esp + 0x18]
mov eax, dword [0x4be4c4]
fild qword [eax]
fcompp
fnstsw ax
sahf
jbe 0x45169c
mov ax, 0x366
call fcn.004aa600
mov edx, 3
call fcn.004b12a8
jmp 0x45144a
cmp byte [ebp + 0x1881], 0
je 0x4516b4
call fcn.0049ea10
test al, al
je 0x451bf0
jmp 0x4516f7
mov eax, dword [ebp + 0x17a4]
call fcn.004aef80
movsx eax, byte [ebp + 0x1880]
mov edx, dword [0x4becf0]
movzx eax, word [edx + eax*2 + 0x54]
mov dword [esp + 0x214], eax
fild dword [esp + 0x214]
fmulp st(1)
add esp, 0xfffffff8
fistp qword [esp]
wait
xor eax, eax
call fcn.004adfd4
test al, al
je 0x451bf0
mov al, byte [ebp + 0x1881]
test al, al
je 0x451767
mov ecx, dword [0x4beb38]
xor edx, edx
call fcn.0049e530
mov ax, 0x151
call fcn.004aa600
mov edx, dword [0x4beb38]
call fcn.004ae1b0
mov eax, dword [0x4bedb0]
mov edx, 0x77
call fcn.004b12a8
test al, al
je 0x451bf0
mov al, byte [ebp + 0x1881]
mov edx, dword [0x4be55c]
mov byte [edx], al
mov edx, dword [0x4be538]
lea eax, [esp + 0x22]
call fcn.004b81b0
mov edx, 0x451c00
mov eax, dword [0x4be538]
call fcn.004b81b0
jmp 0x451791
lea eax, [ebp + 0x700]
call fcn.004adcb4
mov dword [esp + 8], eax
cmp dword [esp + 8], 0xffffffff
jne 0x451791
lea edx, [ebp + 0x700]
mov ax, 3
call fcn.004acdac
jmp 0x451bf0
cmp byte [ebp + 0x1881], 0
je 0x451904
mov al, byte [ebp + 0x1881]
cmp al, 0x1a
jg 0x4517f1
cmp al, 0xde
jl 0x4517f1
call fcn.0044b3d8
mov al, byte [ebp + 0x18bb]
mov edx, dword [0x4bea14]
mov byte [edx], al
mov al, byte [ebp + 0x18b9]
mov edx, dword [0x4be47c]
mov byte [edx], al
mov eax, dword [0x4beb20]
mov byte [eax], 1
call fcn.0044afac
mov eax, dword [0x4beb20]
mov byte [eax], 0
mov eax, dword [0x4be874]
mov ax, word [eax]
mov word [esp + 0x20], ax
jmp 0x45186a
mov word [esp + 0x20], 0
mov eax, dword [0x4be4ec]
movsx eax, word [eax]
test eax, eax
jle 0x451831
mov edi, 1
mov esi, dword [0x4be754]
mov edx, dword [esi]
test edx, edx
je 0x45182a
mov dl, byte [edx + 0x442]
cmp dl, byte [ebp + 0x1881]
jne 0x45182a
mov word [esp + 0x20], di
jmp 0x451831
inc edi
add esi, 4
dec eax
jne 0x45180f
cmp word [esp + 0x20], 0
jne 0x45186a
mov ecx, dword [0x4bedb0]
mov al, byte [ebp + 0x1881]
xor edx, edx
call fcn.0049e530
mov ax, 0x13e
call fcn.004aa600
mov edx, dword [0x4bedb0]
mov ecx, 1
call fcn.004b12b8
jmp 0x451bf0
movsx eax, word [esp + 0x20]
mov edx, dword [0x4be754]
mov ebx, dword [edx + eax*4 - 4]
mov esi, dword [ebp + 0x17a0]
mov dword [ebx + 0x24], esi
mov eax, esi
call fcn.004aef80
movzx eax, word [esp + 4]
mov dword [esp + 0x214], eax
fild dword [esp + 0x214]
fmulp st(1)
fistp qword [ebx + 0x3c]
wait
movzx eax, word [ebx + 0x3fe]
mov dword [esp + 0x214], eax
fild dword [esp + 0x214]
fild qword [ebx + 0x3c]
fdivrp st(1)
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.004aefd0
inc eax
mov dword [ebx + 0x20], eax
mov eax, ebx
call fcn.0046ee24
lea edx, [esp + 0x22]
mov eax, dword [0x4be538]
call fcn.004b81b0
mov eax, dword [ebp + 0x17a4]
push eax
push 0
mov ecx, dword [ebp + 0x17a0]
mov dl, 0xf
mov ax, word [esp + 0x28]
call fcn.00430df8
test al, al
je 0x451bf0
cmp dword [ebp + 0x17a4], 0x7d000
jbe 0x45191b
mov word [0x4c18bc], 0x1200
jmp 0x451924
mov word [0x4c18bc], 0x200
movzx esi, word [0x4c18bc]
movzx edi, word [esp + 4]
imul esi, edi
push 4
push 0x1000
push esi
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov ebx, eax
test ebx, ebx
jne 0x45197b
movzx eax, word [0x4c18bc]
imul edi
mov dword [esp + 0x214], eax
fild dword [esp + 0x214]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b1e30
mov edx, eax
mov ax, 0xb
call fcn.004acdac
jmp 0x451bf0
mov ax, 0x250
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bec98]
call fcn.004b81b0
mov eax, dword [0x4bec98]
xor edx, edx
call fcn.004ad8ec
cmp byte [ebp + 0x1937], 0
je 0x4519ae
call fcn.004506c0
mov dword [esp + 0xc], eax
mov eax, dword [0x4be450]
cmp byte [eax], 0
je 0x4519c9
cmp byte [ebp + 0x1880], 0
je 0x4519c9
mov eax, dword [0x4bea24]
mov byte [eax], 1
mov eax, dword [0x4be450]
cmp byte [eax], 0
je 0x4519ec
cmp byte [ebp + 0x1881], 0
je 0x4519ec
mov eax, dword [0x4be520]
mov byte [eax], 1
mov eax, dword [0x4be858]
mov byte [eax], 1
mov eax, dword [0x4bee24]
mov byte [eax], 1
mov ecx, esp
mov edx, ebx
mov eax, dword [esp + 8]
call fcn.00450c98
mov edi, eax
mov eax, dword [0x4bee24]
mov byte [eax], 0
mov eax, dword [0x4bea24]
cmp byte [eax], 0
je 0x451a33
mov eax, dword [0x4bea24]
mov byte [eax], 0
mov eax, dword [0x4beb4c]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x4beb4c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x4be520]
cmp byte [eax], 0
je 0x451a69
mov eax, dword [0x4be520]
mov byte [eax], 0
mov eax, dword [0x4be6b4]
mov eax, dword [eax]
xor edx, edx
call fcn.0049ebd8
mov eax, dword [0x4be6b4]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x4be6b4]
xor edx, edx
mov dword [eax], edx
push 0x4000
push esi
push ebx
call sub.kernel32.dll_VirtualFree_1
cmp byte [ebp + 0x1881], 0
jne 0x451ac3
mov eax, dword [esp + 8]
push eax
call sub.kernel32.dll_CloseHandle_1
lea edx, [ebp + 0x700]
mov eax, dword [0x4be538]
call fcn.004b81b0
call fcn.0044b3d8
mov al, byte [ebp + 0x18bb]
mov edx, dword [0x4bea14]
mov byte [edx], al
mov al, byte [ebp + 0x18b9]
mov edx, dword [0x4be47c]
mov byte [edx], al
call fcn.0044afac
jmp 0x451b47
movsx eax, word [esp + 0x20]
mov edx, dword [0x4be754]
mov ebx, dword [edx + eax*4 - 4]
push 0
movsx eax, word [ebx + 0x424]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax]
push eax
push 0x222
mov eax, dword [0x4bed7c]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
mov eax, ebx
call fcn.0046ee24
mov al, byte [ebx + 0x442]
test al, al
jle 0x451b47
lea ecx, [ebx + 0x15c]
mov dl, 1
call fcn.004a7190
mov eax, dword [0x4be9c0]
mov word [eax], 0
cmp byte [ebx + 0x449], 0
jne 0x451b47
mov eax, ebx
call fcn.0046fbdc
add esp, 0xfffffff8
fistp qword [esp]
wait
mov dx, word [ebx + 0x424]
mov al, 1
call fcn.00425aac
cmp byte [ebp + 0x1937], 0
je 0x451b81
lea edx, [ebp + 0x100]
mov eax, dword [0x4bedb0]
call fcn.004b81b0
mov eax, dword [0x4becb4]
mov eax, dword [eax]
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4bedb0]
mov edx, dword [esp + 0xc]
call fcn.004505a8
cmp edi, dword [esp]
jbe 0x451bae
sub edi, dword [esp]
mov dword [esp + 0x218], edi
xor eax, eax
mov dword [esp + 0x21c], eax
fild qword [esp + 0x218]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b21b4
jmp 0x451bbd
mov edx, 0x451c04
mov eax, dword [0x4bedb0]
call fcn.004b81b0
mov edx, dword [0x4bedb0]
mov eax, dword [0x4beb38]
call fcn.004b81b0
mov ax, 0x251
call fcn.004aa600
mov edx, dword [0x4beb38]
call fcn.004ae1b0
mov eax, dword [0x4bedb0]
mov edx, 4
call fcn.004b12a8
add esp, 0x220
pop ebp
pop edi
pop esi
pop ebx
ret