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

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov bl, 2
mov eax, dword [esi + 8]
cmp word [eax + 0x10], 0x80
jne 0x5425a6
fld dword [esi + 0x44]
fcomp dword [0x634594]
fnstsw ax
test ah, 0x41
jne 0x5425a6
cmp byte [esp + 0x20], 3
jb 0x5425a6
cmp byte [esi + 0x48], bl
ja 0x5425a6
mov eax, dword [esi + 0xc]
mov edx, dword [esi]
mov ecx, dword [eax + 0x74]
mov eax, dword [ecx + 0x330]
mov ecx, esi
push eax
call dword [edx + 0x5c]
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x8c]
mov al, byte [edx + 0x29]
test al, al
jne 0x5425e1
cmp byte [esp + 0x20], 3
jb 0x542b08
cmp byte [esi + 0x48], bl
ja 0x5425e1
mov eax, dword [esi + 8]
cmp word [eax + 0x16], 1
jne 0x5425e1
mov ecx, esi
call fcn.00543d70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4
cmp byte [esp + 0x20], 3
jb 0x542b08
cmp byte [esi + 0x48], bl
ja 0x54299d
mov ecx, dword [esi + 8]
xor ebp, ebp
mov ecx, dword [ecx + 0x1b8]
cmp ecx, ebp
je 0x542619
mov eax, dword [esi + 0x24]
cmp eax, ebp
je 0x542619
cmp dword [eax + 4], ebp
jle 0x542619
push ecx
mov ecx, dword [esi + 0x18]
call fcn.0041b2c0
cmp dword [esi + 0x18], ebp
je 0x54264f
mov eax, dword [esi + 8]
xor edi, edi
mov cl, byte [eax + 0x9b]
test cl, cl
jbe 0x54264f
mov edx, dword [eax + 0x9c]
mov ecx, dword [esi + 0x18]
mov eax, dword [edx + edi*8]
push eax
call fcn.0041b2c0
mov eax, dword [esi + 8]
xor ecx, ecx
inc edi
mov cl, byte [eax + 0x9b]
cmp edi, ecx
jl 0x54262d
mov eax, dword [esi + 8]
mov dword [esi + 0x30], ebp
cmp word [eax + 0x16], 0x2b
jne case.0x54267a.297
movsx eax, word [eax + 0x10]
add eax, 0xfffffee2
cmp eax, 0x17
ja case.0x54267a.297
xor edx, edx
mov dl, byte [eax + 0x542b50]
jmp dword [edx*4 + 0x542b20]
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x11d
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x11f
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x120
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x121
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x122
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x124
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x126
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x127
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x128
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x129
jmp 0x542820
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x8c]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [edx]
mov edx, dword [esi + 0x40]
push edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x38]
push edx
push 0x12a
call dword [eax + 0xac]
mov eax, dword [esi + 8]
cmp word [eax + 0x16], 0xd
jne 0x54299d
mov eax, dword [esi + 0x24]
cmp eax, ebp
je 0x54299d
cmp dword [esi + 0x20], ebp
jne 0x54299d
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x54299d
mov ecx, dword [eax]
cmp ebp, 3
mov edi, dword [ecx]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
ja case.default.0x54286c
jmp dword [ebp*4 + 0x542b68]
fld dword [esi + 0x38]
fsub dword [0x634958]
fstp dword [esp + 0x10]
fld dword [esi + 0x3c]
fsub dword [0x634958]
fstp dword [esp + 0x14]
jmp 0x542905
fld dword [esi + 0x38]
fadd dword [0x634958]
fstp dword [esp + 0x10]
fld dword [esi + 0x3c]
fsub dword [0x634958]
fstp dword [esp + 0x14]
jmp 0x542905
fld dword [esi + 0x38]
fsub dword [0x634958]
jmp 0x5428bf
fld dword [esi + 0x38]
fadd dword [0x634958]
fstp dword [esp + 0x10]
fld dword [esi + 0x3c]
fadd dword [0x634958]
fstp dword [esp + 0x14]
jmp 0x542905
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x3c]
mov edx, dword [eax + 0x38]
mov eax, dword [eax + 0x34]
push edx
mov edx, dword [esi + 0x38]
push eax
mov eax, dword [edi + 8]
push ecx
push edx
push edi
lea ecx, [esp + 0x28]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
push 0xffffffffffffffff
mov ecx, esi
call fcn.005397e0
test al, al
je 0x54299d
fld dword [esp + 0x10]
fcomp dword [0x6345b8]
fnstsw ax
test ah, 0x40
jne 0x54299d
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x38]
push eax
push ecx
push edx
mov ecx, edi
call fcn.00539640
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xe4]
mov eax, dword [esi + 0x40]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi]
push eax
mov eax, dword [esp + 0x14]
push ecx
push eax
mov ecx, edi
call dword [edx + 0x38]
mov ecx, edi
fstp st(0)
call fcn.00539bc0
test eax, eax
je 0x54298e
mov ecx, edi
call fcn.00539bc0
mov cl, byte [eax + 0x169]
mov byte [esp + 0x18], cl
mov ecx, edi
call fcn.00539bc0
mov ecx, dword [esp + 0x18]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0xc4]
mov ecx, edi
call fcn.00539bc0
mov ecx, eax
call fcn.004176f0
mov eax, dword [esi + 0x24]
inc ebp
mov ecx, dword [eax + 4]
test ecx, ecx
jg 0x542853
cmp byte [esp + 0x20], 3
jne 0x542b08
cmp byte [esi + 0x48], bl
jne 0x542b08
mov edx, dword [esi + 8]
mov ecx, 3
fld dword [0x634594]
lea eax, [edx + 0x174]
cmp word [eax - 4], 0
jl 0x5429dd
cmp byte [eax], 1
jne 0x5429dd
movsx edi, word [eax - 2]
mov dword [esp + 0x18], edi
fiadd dword [esp + 0x18]
add eax, 6
dec ecx
jne 0x5429c5
cmp byte [edx + 4], 0x50
jne 0x542a90
mov eax, dword [esi + 0x1cc]
test eax, eax
jne 0x542b06
mov ecx, dword [esi + 0xc]
push 0
fchs
fstp dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov edx, dword [ecx]
push edi
push 0x62
call dword [edx + 0x78]
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xa8]
fld dword [eax + 0x188]
fcomp dword [0x634594]
fnstsw ax
test ah, 1
je 0x542a37
mov edx, dword [ecx]
push 0
push 0x62
call dword [edx + 0x74]
mov eax, dword [esi + 8]
mov ax, word [eax + 0x10]
cmp ax, 0x52
je 0x542b08
cmp ax, 0x114
je 0x542b08
mov ecx, dword [esi + 0xc]
push 0
push edi
push 0xa5
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xa8]
fld dword [eax + 0x294]
fcomp dword [0x634594]
fnstsw ax
test ah, 1
je 0x542b08
mov edx, dword [ecx]
push 0
push 0xa5
call dword [edx + 0x74]
jmp 0x542b08
mov ecx, dword [esi + 0xc]
push 0
fchs
fstp dword [esp + 0x18]
mov edi, dword [esp + 0x18]
mov eax, dword [ecx]
push edi
push 0x62
call dword [eax + 0x78]
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0xa8]
fld dword [edx + 0x188]
fcomp dword [0x634594]
fnstsw ax
test ah, 1
je 0x542acc
mov eax, dword [ecx]
push 0
push 0x62
call dword [eax + 0x74]
mov ecx, dword [esi + 0xc]
push 0
push edi
push 0xa4
mov edx, dword [ecx]
call dword [edx + 0x78]
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xa8]
fld dword [eax + 0x290]
fcomp dword [0x634594]
fnstsw ax
test ah, 1
je 0x542b08
mov edx, dword [ecx]
push 0
push 0xa4
call dword [edx + 0x74]
jmp 0x542b08
fstp st(0)
mov eax, dword [esp + 0x20]
mov ecx, esi
push eax
call fcn.00538a50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4