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

Disassembly:
push 0xffffffffffffffff
push 0x154d6b0b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xbc
mov eax, dword [0x154ed66c]
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x154f0040
mov dword [esp + 0xcc], eax
mov dword [esp + 0x38], ebx
call fcn.15480430
test eax, eax
je 0x154986a3
push ebx
lea eax, [esp + 0x24]
push eax
push 0x154f0040
call fcn.154804e0
push eax
push 0x154f0040
call fcn.154800b0
mov edi, eax
cmp edi, ebx
je 0x154986a3
xor ecx, ecx
mov dword [esp + 0x52], ecx
mov dword [esp + 0x56], ecx
mov dword [esp + 0x5a], ecx
mov dword [esp + 0x5e], ecx
mov dword [esp + 0x62], ecx
mov dword [esp + 0x66], ecx
push 0x14
mov dword [esp + 0x6e], ecx
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x76], ecx
push edi
mov dword [esp + 0x7e], ecx
push 0x154f0040
mov word [esp + 0x60], bx
mov word [esp + 0x86], cx
call fcn.15486d70
lea eax, [esp + 0x50]
push 0x154dba10
push eax
call fcn.154bc6ef
add esp, 8
test eax, eax
je 0x15498653
push 0xf
push 0x154f0040
call fcn.15480240
test eax, eax
jne 0x154986a3
push edi
push 0x154f0040
call fcn.1547fce0
test eax, eax
jne 0x15498685
cmp dword [0x154f004c], ebx
je 0x15498685
push 0x64
push 0x154f0040
call fcn.1547c820
push edi
push 0x154f0040
call fcn.1547fce0
test eax, eax
je 0x15498662
mov ecx, dword [esp + 0x20]
push ecx
push 0x154f0040
call fcn.154869a0
push 0x7d0
push 0x154f0040
call fcn.1547c820
push 0x154f0040
call fcn.15480590
test eax, eax
mov esi, dword [0x154d9358]
je 0x154987a1
push ebx
lea edx, [esp + 0x24]
push edx
push 0x154f0040
call fcn.15480590
push eax
push 0x154f0040
call fcn.154800b0
mov edi, eax
cmp edi, ebx
je 0x154987a1
push edi
push 0x154f0040
call fcn.1547fce0
test eax, eax
jne 0x15498713
nop
cmp dword [0x154f004c], ebx
je 0x15498713
push 0x64
push 0x154f0040
call fcn.1547c820
push edi
push 0x154f0040
call fcn.1547fce0
test eax, eax
je 0x154986f0
mov eax, dword [esp + 0x20]
push eax
push 0x154f0040
call fcn.154869a0
call esi
push 0x154f0040
mov edi, eax
call fcn.15480590
test eax, eax
je 0x15498761
cmp dword [0x154f0e6c], ebx
jne 0x15498761
call esi
sub eax, edi
cmp eax, 0xbb8
jae 0x15498761
push 0x64
push 0x154f0040
call fcn.1547c820
push 0x154f0040
call fcn.15480590
test eax, eax
jne 0x15498734
push 0x154f0040
call fcn.15480270
test eax, eax
je 0x15498792
nop
cmp dword [0x154f0e6c], ebx
jne 0x15498792
push 0x64
push 0x154f0040
call fcn.1547c820
push 0x154f0040
call fcn.15480270
test eax, eax
jne 0x15498770
push 0x3e8
push 0x154f0040
call fcn.1547c820
call fcn.15491d80
fild dword [esp + 0xec]
mov ebp, dword [esp + 0xe8]
mov edi, dword [esp + 0xe4]
mov ebx, dword [esp + 0xe0]
fstp dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
push 0
push ecx
push ebp
push edi
push ebx
call fcn.1548e820
push 0x154f0040
call fcn.15485710
test eax, eax
je 0x1549925e
push 0
push 0x154f0040
call fcn.1547d6a0
test eax, eax
je 0x1549925e
mov eax, dword [0x154f004c]
test eax, eax
je 0x1549925e
push 0x154f0040
call fcn.15480e60
test eax, eax
jne 0x1549925e
call fcn.154916d0
push 0x154f0040
call fcn.15485710
test eax, eax
je 0x1549925e
push 0
push 0x154f0040
call fcn.1547d6a0
test eax, eax
je 0x1549925e
mov eax, dword [0x154f004c]
test eax, eax
je 0x1549925e
push 0x154f0040
call fcn.15480e60
test eax, eax
jne 0x1549925e
call fcn.1548ec40
call fcn.1548f390
mov eax, dword [0x154f0160]
test eax, eax
je 0x154988a1
call esi
sub eax, dword [0x154f0164]
cmp eax, 0xbb8
jbe 0x154988a1
push 0x154f0040
call fcn.15485090
push 0x154f0040
call fcn.1548a4d0
call esi
mov dword [0x154f0164], eax
push 0x154f0040
call fcn.15485710
test eax, eax
je 0x1549925e
push 0
push 0x154f0040
call fcn.1547d6a0
test eax, eax
je 0x1549925e
mov eax, dword [0x154f004c]
test eax, eax
je 0x1549925e
push 0x154f0040
call fcn.15480e60
test eax, eax
jne 0x1549925e
mov edx, dword [esp + 0xec]
push edx
push ebp
push edi
push ebx
call fcn.15475270
push 0x154f0040
call fcn.15485710
test eax, eax
je 0x1549925e
push 0
push 0x154f0040
call fcn.1547d6a0
test eax, eax
je 0x1549925e
mov eax, dword [0x154f004c]
test eax, eax
je 0x1549925e
push 0x154f0040
call fcn.15480e60
test eax, eax
jne 0x1549925e
mov eax, dword [0x154f00fc]
test eax, eax
je 0x154989bc
mov eax, dword [0x154f0100]
test eax, eax
je 0x1549895f
push 0x154f0040
call fcn.1547d590
test eax, eax
je 0x154989bc
push 0x154dcc5c
push 0x154f0040
call fcn.1548d140
push eax
push 0x154f0040
call fcn.1548c950
test eax, eax
je 0x15498984
push 0x154dcc5c
jmp 0x154989a7
push 0x154dcc54
push 0x154f0040
call fcn.1548d140
push eax
push 0x154f0040
call fcn.1548c950
test eax, eax
je 0x154989bc
push 0x154dcc54
push 0x154f0040
call fcn.1548d140
push eax
push 0x154f0040
call fcn.1548ce30
push 1
push ebp
push edi
push ebx
push 0x154f0040
call fcn.15487860
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x15498a81
push 0x154f0040
call fcn.15486240
test eax, eax
je 0x154989f5
push 0
push 0x1f4
push ebp
jmp 0x15498a75
push 0x154f0040
call fcn.15482ee0
cmp eax, 0xd0
je 0x15498a6c
push 0x154f0040
call fcn.15482ee0
cmp eax, 0xd1
je 0x15498a6c
push 0x154f0040
call fcn.15482ee0
cmp eax, 0xd2
je 0x15498a6c
push 0x154f0040
call fcn.15482ee0
cmp eax, 0xdd
je 0x15498a6c
push 0x154f0040
call fcn.15482ee0
cmp eax, 0xde
je 0x15498a6c
push 0x154f0040
call fcn.15482ee0
cmp eax, 0xe0
je 0x15498a6c
push 0
push ebp
push edi
push ebx
push 0x154f0040
call fcn.1548bbb0
jmp 0x15498a81
push 0
push 0x1f4
push 0
push edi
push ebx
push 0x154f0040
call fcn.15488400
push 0x154f0040
call fcn.15485710
test eax, eax
je 0x1549925e
push 0
push 0x154f0040
call fcn.1547d6a0
test eax, eax
je 0x1549925e
mov eax, dword [0x154f004c]
test eax, eax
je 0x1549925e
push 0x154f0040
call fcn.15480e60
test eax, eax
jne 0x1549925e
mov esi, dword [esp + 0x10]
push esi
push ebp
push edi
push ebx
call fcn.15492490
push esi
push ebp
push edi
push ebx
call fcn.1548eca0
push esi
push ebp
push edi
push ebx
call fcn.1548f470
push 0x154f0040
call fcn.15485710
test eax, eax
je 0x1549925e
push 0
push 0x154f0040
call fcn.1547d6a0
test eax, eax
je 0x1549925e
mov eax, dword [0x154f004c]
test eax, eax
je 0x1549925e
push 0x154f0040
call fcn.15480e60
test eax, eax
jne 0x1549925e
mov eax, dword [esp + 0xdc]
push eax
lea ecx, [esp + 0x24]
call fcn.15474a60
mov ecx, dword [esp + 0xec]
push ecx
push ebp
push edi
push ebx
push 0
push 1
push eax
push 0
push 0
mov dword [esp + 0xf8], 0
call fcn.154945a0
lea ecx, [esp + 0x20]
mov esi, eax
mov dword [esp + 0xd4], 0xffffffff
call fcn.154722e0
mov eax, dword [0x154f00d4]
test eax, eax
je 0x15498c20
test esi, esi
jne 0x15498c28
push 0x154f0040
call fcn.15486240
test eax, eax
je 0x15498bcd
push 1
push ebp
push edi
push ebx
push 0x154f0040
call fcn.15487860
fcomp qword [0x154db868]
fnstsw ax
test ah, 0x41
jne 0x1549925e
push 0x154f0040
call fcn.15480330
test eax, eax
jne 0x1549925e
push ebp
jmp 0x15498c00
push 0
push ebp
push edi
push ebx
push 0x154f0040
call fcn.15487860
fcomp qword [0x154db868]
fnstsw ax
test ah, 0x41
jne 0x1549925e
push 0x154f0040
call fcn.15480330
test eax, eax
jne 0x1549925e
push eax
push edi
push ebx
push 0x154f0040
call fcn.15487f70
push 0xc8
push 0x154f0040
call fcn.1547c820
jmp 0x1549925e
test esi, esi
je 0x1549925e
push esi
push 0x154f0040
call fcn.1547cb60
push edx
push eax
push 0x154f0040
call fcn.15485990
push 0x154f0040
call fcn.1547d8e0
mov ecx, dword [0x154f0148]
mov dword [esp + 0x40], eax
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], eax
mov dword [0x154f015c], 1
je 0x15498caa
mov eax, dword [esp + 0xf0]
test eax, eax
jne 0x15498caa
push 0x154f0040
call fcn.15487c00
test eax, eax
je 0x15498caa
push 0x154f0040
call fcn.1547d8e0
push edx
push eax
push 0x154f0040
call fcn.15487d30
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x34]
push eax
push esi
push 0x154f0040
call fcn.1547ecf0
mov eax, dword [0x154f004c]
test eax, eax
je 0x15499203
lea esp, [esp]
push 0x154f0040
call fcn.15485710
test eax, eax
je 0x1549925e
push 0
push 0x154f0040
call fcn.1547d6a0
test eax, eax
je 0x1549925e
push 0x154f0040
call fcn.1547d8e0
or eax, edx
je 0x15499203
push 0x154f0040
call fcn.1547d8e0
cmp eax, dword [esp + 0x40]
jne 0x15499203
cmp edx, dword [esp + 0x44]
jne 0x15499203
push 0x154f0040
call fcn.1547d8e0
xor eax, eax
and edx, 0x80000000
or eax, edx
je 0x1549925e
lea ecx, [esp + 0x34]
push ecx
push 0x154f0040
call fcn.1547dcb0
mov edx, dword [esp + 0x34]
push edx
push 0x154f0040
mov esi, eax
call fcn.1547d8e0
push edx
push eax
push esi
push 0x154f0040
call fcn.1547f720
push eax
push 0x154f0040
mov dword [esp + 0x30], eax
call fcn.1547ebc0
test eax, eax
je 0x1549925e
mov esi, dword [esp + 0x10]
push 1
push esi
push ebp
push edi
push ebx
call fcn.1548e820
push esi
push ebp
push edi
push ebx
call fcn.1548f470
mov eax, dword [esp + 0x24]
push eax
push 0x3b
mov ecx, 0x154f0168
call fcn.15473b70
mov esi, eax
cmp esi, 0xffffffff
jne 0x15498dd8
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1549925e
push 0
push 0x3b
mov ecx, 0x154f0168
mov dword [esp + 0x2c], 0
call fcn.15473b70
mov esi, eax
mov eax, dword [esp + 0x24]
mov ecx, esi
sub ecx, eax
push ecx
push eax
lea edx, [esp + 0x54]
push edx
mov ecx, 0x154f0168
call fcn.15473f50
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x7c]
push ecx
call fcn.154bb9a2
add esp, 8
lea ecx, [esp + 0x4c]
call fcn.154722e0
mov eax, dword [0x154f00c8]
test eax, eax
je 0x15498e2d
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x15498e2d
mov eax, dword [esp + 0x20]
test eax, eax
je 0x15498e2d
inc esi
mov dword [esp + 0x24], esi
jmp 0x154991ea
mov edx, dword [esp + 0x28]
push edx
inc esi
push 0x154f0040
mov dword [esp + 0x2c], esi
call fcn.1547cb60
xor eax, eax
and edx, 0x80000000
or eax, edx
je 0x15498e6d
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
push eax
push 0x154f0040
call fcn.1547f2b0
jmp 0x15498e8b
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x20]
push eax
push ecx
push 0x154f0040
call fcn.1547f1c0
mov eax, dword [0x154f0ed4]
test eax, eax
je 0x15498ec6
mov ecx, 0x154f0f28
call fcn.1547b7d0
push eax
push 0x154f0040
call fcn.154894f0
test eax, eax
je 0x15498ec6
mov ecx, 0x154f0f28
call fcn.1547b7d0
push eax
push 0x154f0040
call fcn.154864d0
test eax, eax
jne 0x15498f0f
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push ebp
push edi
push ebx
push edx
push eax
push ecx
push 0x154f0040
call fcn.154879b0
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
je 0x15499203
push 1
push ebp
push edi
push ebx
push 0x154f0040
call fcn.15487860
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
je 0x15499203
call fcn.1548f390
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x40]
push eax
push ecx
push 0x154f0040
call fcn.1547ecf0
mov ecx, dword [esp + 0xf0]
test ecx, ecx
mov esi, dword [esp + 0x3c]
je 0x15498f56
mov eax, dword [esp + 0x38]
test eax, eax
je 0x15498f56
mov eax, esi
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x38]
cmp eax, ecx
jle 0x1549925e
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x15498fad
mov eax, dword [esp + 0x30]
test eax, eax
je 0x15498fa9
cmp esi, eax
je 0x15498fad
mov eax, dword [esp + 0x28]
push eax
push 0x154f0040
call fcn.1547eeb0
push 0x154f0040
mov esi, eax
mov edi, edx
call fcn.15480d90
cmp esi, eax
jne 0x15498f96
cmp edi, edx
je 0x1549925e
push 0
push 0
push 0x154f0040
call fcn.15485990
jmp 0x1549925e
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x15498fe7
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 1
push edx
push eax
push ecx
push 0x154f0040
call fcn.15487860
fild dword [esp + 0xf4]
fcompp
fnstsw ax
test ah, 1
je 0x1549925e
mov eax, dword [0x154f0104]
test eax, eax
je 0x15499074
cmp dword [esp + 0x2c], 4
jge 0x15499074
mov eax, dword [esp + 0x28]
push 0x14
lea edx, [esp + 0xa4]
push edx
push eax
push 0x154f0040
call fcn.1547f450
lea ecx, [esp + 0xa0]
push 0x154dc7e4
push ecx
call fcn.154bc6ef
add esp, 8
test eax, eax
jne 0x1549904a
lea edx, [esp + 0xa0]
push 0x154dc7d8
push edx
call fcn.154bc6ef
add esp, 8
test eax, eax
je 0x15499074
mov eax, dword [esp + 0x10]
mov ecx, dword [0x154f018c]
push eax
push ebp
push edi
push ebx
push 0
push ecx
push 0x154f0040
call fcn.1548d140
push eax
call fcn.1548fb80
inc dword [esp + 0x2c]
jmp 0x154991ea
mov eax, dword [0x154f00e0]
test eax, eax
je 0x154990ca
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 1
push edx
push eax
push ecx
push 0x154f0040
call fcn.15487860
fild dword [0x154f00e4]
fcompp
fnstsw ax
test ah, 1
jne 0x154990ca
mov esi, dword [esp + 0x10]
mov edx, dword [0x154f0180]
push esi
push ebp
push edi
push ebx
push 0
push edx
push 0x154f0040
call fcn.1548d140
push eax
call fcn.1548fb80
jmp 0x154990ce
mov esi, dword [esp + 0x10]
mov eax, dword [0x154f00e8]
test eax, eax
je 0x1549911d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push 1
push eax
push ecx
push edx
push 0x154f0040
call fcn.15487860
fild dword [0x154f00ec]
fcompp
fnstsw ax
test ah, 1
jne 0x1549911d
mov eax, dword [0x154f0184]
push esi
push ebp
push edi
push ebx
push 0
push eax
push 0x154f0040
call fcn.1548d140
push eax
call fcn.1548fb80
mov eax, dword [0x154f00f0]
test eax, eax
je 0x1549916d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push 1
push ecx
push edx
push eax
push 0x154f0040
call fcn.15487860
fild dword [0x154f00f4]
fcompp
fnstsw ax
test ah, 1
jne 0x1549916d
mov ecx, dword [0x154f0188]
push esi
push ebp
push edi
push ebx
push 0
push ecx
push 0x154f0040
call fcn.1548d140
push eax
call fcn.1548fb80
mov edx, dword [esp + 0x28]
push 0
push edx
call fcn.15490500
test eax, eax
jne 0x154991b8
lea eax, [esp + 0x78]
push 0x154dc6b4
push eax
call fcn.154bbdd3
add esp, 8
test eax, eax
push esi
push ebp
push edi
push ebx
push 0
jne 0x154991a0
call fcn.15490100
jmp 0x154991b8
lea ecx, [esp + 0x8c]
push ecx
push 0x154f0040
call fcn.1548d140
push eax
call fcn.1548fb80
mov eax, dword [0x154f0168]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x154991ea
lea edx, [esp + 0x78]
push edx
push eax
call fcn.154bc6ef
add esp, 8
test eax, eax
je 0x154991ea
sub eax, dword [0x154f0168]
sar eax, 1
test eax, eax
jne 0x154991ea
mov dword [esp + 0x20], 1
push 0x64
push 0x154f0040
call fcn.1547c820
mov eax, dword [0x154f004c]
test eax, eax
jne 0x15498cd0
mov ecx, dword [0x154f0e30]
xor eax, eax
cmp ecx, eax
mov dword [0x154f015c], eax
push eax
je 0x15499242
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
push ebp
push edi
push ebx
mov dword [0x154f0e30], eax
mov eax, dword [esp + 0x28]
push edx
push eax
push ecx
call fcn.15490d60
mov dword [0x154f0e30], 1
jmp 0x1549925e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x20]
push ebp
push edi
push ebx
push eax
push ecx
push edx
call fcn.15490d60
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xbc]
pop ebx
call fcn.154bbb2d
add esp, 0xc8
ret 0x20