Function at 0x502ac0
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x71b7a2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
mov eax, dword [0x7a39fc]
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov ecx, dword [eax + 8]
xor ebx, ebx
push edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.004aed80
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x28]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x28]
push eax
push 0x7f000000
call fcn.004ae830
mov ecx, eax
call fcn.004ade40
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x30]
push edx
mov edx, dword [esi + 0x380]
lea eax, [esp + 0x38]
push eax
mov eax, dword [esi + 0x37c]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x34]
push edx
push eax
call fcn.004aede0
mov ecx, eax
call fcn.004ae460
cmp dword [esp + 0x30], 0x4e20
jb 0x502c78
mov al, byte [esi + 0x4d1]
cmp al, 1
jne 0x502be7
call fcn.006fc447
cdq
mov ecx, 0xa
idiv ecx
add dl, 0xb
mov byte [esi + 0x91c], dl
call fcn.006fc447
cdq
mov ecx, 0xa
idiv ecx
add dl, 0xb
mov byte [esi + 0x91d], dl
mov ecx, dword [esi + 0xd4]
cmp ecx, 0x2710
jne 0x502bff
mov al, byte [esi + 0x4d0]
cmp al, 1
jne 0x502c09
mov al, byte [esi + 0x4d0]
cmp al, 1
je 0x502c3a
cmp ecx, 0x2710
jne 0x502c15
cmp al, 1
jne 0x502c3a
cmp al, 2
je 0x502c3a
call fcn.006fc447
cdq
mov ecx, 0xa
idiv ecx
inc dl
mov byte [esi + 0x91e], dl
call fcn.006fc447
mov ecx, 0xa
jmp 0x502c59
call fcn.006fc447
cdq
mov ecx, 0x14
idiv ecx
inc dl
mov byte [esi + 0x91e], dl
call fcn.006fc447
mov ecx, 0x14
cdq
idiv ecx
mov eax, dword [esp + 0x28]
mov dword [esi + 0x380], eax
inc dl
mov byte [esi + 0x91f], dl
mov edx, dword [esp + 0x24]
mov dword [esi + 0x37c], edx
mov ecx, esi
call fcn.004cb120
mov edi, eax
cmp edi, ebx
je 0x5034b2
mov ecx, dword [esi + 4]
push ebp
mov ebp, dword [esp + 0x74]
mov eax, dword [ebp + 4]
cmp eax, ecx
je 0x5034b1
mov ecx, esi
call fcn.004efc70
fstp dword [esp + 0x30]
mov ecx, esi
call fcn.004efd20
fcomp dword [esp + 0x30]
mov ecx, esi
fnstsw ax
test ah, 0x41
jp 0x502cc2
call fcn.004efc70
jmp 0x502cc7
call fcn.004efd20
mov ebx, dword [ebp + 4]
fstp dword [esp + 0x18]
lea ecx, [esi + 0x90]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x54], ecx
fld dword [esp + 0x54]
fadd dword [0x73f414]
lea edx, [ebp + 0x90]
mov dword [esp + 0x50], eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
fstp dword [esp + 0x54]
mov edx, dword [edx + 8]
mov dword [esp + 0x48], edx
fld dword [esp + 0x48]
fadd dword [0x73f414]
mov dword [esp + 0x44], ecx
mov ecx, ebp
mov dword [esp + 0x30], ebx
fstp dword [esp + 0x48]
mov dword [esp + 0x40], eax
call fcn.004cb120
cmp eax, edi
je 0x502d34
xor edi, edi
jmp 0x502eb2
mov ecx, dword [esp + 0x14]
mov ebp, dword [esi + 4]
call fcn.004aea40
cmp ebp, eax
jne 0x502d4b
mov edi, 1
jmp 0x502dba
fld dword [esp + 0x54]
fsub dword [esp + 0x48]
fld dword [esp + 0x50]
fsub dword [esp + 0x44]
fld dword [esp + 0x4c]
fsub dword [esp + 0x40]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
fcompp
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 0x41
fstp st(0)
jp 0x502d8e
xor edi, edi
jmp 0x502dba
mov eax, dword [esi + 4]
push 0
push 1
push ebx
push eax
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x68]
push eax
mov ecx, edi
call fcn.0050c330
mov edi, eax
dec edi
neg edi
sbb edi, edi
inc edi
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
call fcn.004ae6b0
mov ecx, dword [eax + 0x140]
test ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
jle 0x502e6b
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 8]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x13c]
mov eax, dword [esp + 0x18]
mov edx, dword [edx + eax*4]
push edx
call fcn.004ae770
mov ebp, eax
test ebp, ebp
je 0x502e4a
mov ecx, esi
call fcn.004cb120
test eax, eax
je 0x502e4a
mov ecx, ebp
call fcn.004cb120
test eax, eax
je 0x502e4a
mov ecx, esi
call fcn.004cb120
mov ebx, dword [eax + 0x120]
add eax, 0x11c
mov ecx, ebp
call fcn.004cb120
mov ecx, dword [eax + 0x120]
add eax, 0x11c
cmp ebx, ecx
mov ebx, dword [esp + 0x30]
je 0x502e63
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x140]
inc eax
cmp eax, edx
mov dword [esp + 0x18], eax
jl 0x502de2
jmp 0x502e6b
mov dword [esp + 0x10], 1
mov al, byte [esi + 0x8ec]
test al, 0x10
jne 0x502e7d
test al, 8
je 0x502e87
test al, 2
jne 0x502e87
mov dword [esp + 0x10], 1
jmp 0x502e8e
cmp dword [esp + 0x10], 1
jne 0x502eb2
test al, 0x10
jne 0x502eb2
test al, 8
je 0x502e9a
test al, 2
je 0x502eb2
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x10]
mov ecx, dword [esp + 0x74]
push eax
call fcn.00501950
and eax, 1
mov dword [esp + 0x10], eax
push ebx
mov ecx, esi
call fcn.00517a20
mov ebp, eax
test ebp, ebp
je 0x50301f
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov cl, byte [ebp + 4]
shr ecx, 4
and ecx, 1
cmp eax, ecx
je 0x502efb
cmp eax, 1
jne 0x502eec
mov edx, dword [esp + 0x74]
push edx
mov ecx, esi
call fcn.004f61d0
mov eax, dword [esp + 0x10]
mov cl, byte [ebp + 4]
shl al, 4
xor al, cl
and al, 0x10
xor cl, al
mov byte [ebp + 4], cl
mov al, byte [ebp + 4]
movzx ecx, al
mov edx, ecx
shr edx, 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x18], edx
and edx, 1
and ecx, 1
test edi, edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
je 0x502fd9
mov cl, al
and cl, 1
jne 0x502f74
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
push edi
push eax
mov ecx, esi
call fcn.00500c00
mov al, byte [ebp + 4]
test al, 2
jne 0x502f5d
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x502f5d
mov dword [esp + 0x1c], 1
mov cl, al
and cl, 1
jne 0x502f74
mov edx, dword [esp + 0x18]
test edx, edx
je 0x502f74
mov dword [esp + 0x1c], 1
test cl, cl
je 0x502f90
mov edx, dword [esp + 0x10]
test edx, edx
je 0x502f90
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 1
shr al, 1
and al, 1
je 0x502fb4
mov edx, dword [esp + 0x74]
mov edi, dword [edx + 0x8c8]
test edi, edi
je 0x502fb4
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], 1
mov edx, dword [esp + 0x10]
test edx, edx
je 0x503076
test cl, cl
jne 0x502fcc
test al, al
je 0x503076
mov dword [esp + 0x20], 1
jmp 0x503076
test al, 1
mov edi, 1
je 0x502fee
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
push 0
push eax
mov ecx, esi
call fcn.00500c00
mov eax, dword [esp + 0x14]
test eax, eax
je 0x503019
mov dword [esp + 0x1c], edi
jmp 0x503076
mov dword [esp + 0x20], edi
jmp 0x503076
test edi, edi
je 0x503049
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x20]
push eax
push edi
push ecx
mov ecx, esi
call fcn.00500c00
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x50306e
jmp 0x503066
mov edx, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x78]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
push 0
push edx
mov ecx, esi
call fcn.00500c00
mov eax, dword [esp + 0x14]
test eax, eax
je 0x503076
mov dword [esp + 0x1c], 1
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
push ebx
call fcn.005eda50
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 4]
push eax
call fcn.005eda50
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
mov ebp, eax
call fcn.005ed8b0
mov edi, eax
test edi, edi
je 0x5030ea
push ebp
mov ecx, edi
call fcn.00634620
test eax, eax
je 0x5030ea
mov eax, dword [esp + 0x30]
push eax
mov ecx, edi
call fcn.00634620
test eax, eax
je 0x5030ea
mov eax, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
jmp 0x50322e
mov eax, dword [esp + 0x20]
test eax, eax
je 0x50322e
push ebx
mov ecx, esi
call fcn.00517a20
mov ebp, eax
test ebp, ebp
je 0x50322e
test byte [ebp + 4], 2
je 0x503183
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x503183
mov eax, dword [esi + 0xaa0]
test eax, eax
jne 0x503183
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x6c], 0
je 0x503145
mov ecx, eax
call fcn.004d7540
mov edi, eax
jmp 0x503147
xor edi, edi
push 1
push 0
mov ecx, edi
mov dword [esp + 0x74], 0xffffffff
mov word [edi], 1
call fcn.004d76b0
push ebx
push 0
mov ecx, edi
call fcn.004d7780
mov ecx, dword [0x7441dc]
mov eax, dword [esi + 4]
push edi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
push ebx
push 0
push 0
call fcn.004b08d0
test byte [ebp + 4], 1
je 0x5031fe
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x5031fe
mov eax, dword [esi + 0xaa0]
test eax, eax
jne 0x5031fe
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x6c], 1
je 0x5031c0
mov ecx, eax
call fcn.004d7540
mov edi, eax
jmp 0x5031c2
xor edi, edi
push 3
push 0
mov ecx, edi
mov dword [esp + 0x74], 0xffffffff
mov word [edi], 1
call fcn.004d76b0
push ebx
push 0
mov ecx, edi
call fcn.004d7780
mov edx, dword [0x7441dc]
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x24]
push edi
push edx
push eax
push ebx
push 0
push 0
call fcn.004b08d0
mov al, byte [esp + 0x14]
mov cl, byte [ebp + 4]
mov dl, byte [esp + 0x18]
and al, 1
shl al, 1
and cl, 0xfc
or al, cl
and dl, 1
or al, dl
test al, 3
mov byte [ebp + 4], al
jne 0x50322e
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x50322e
push ebx
mov ecx, esi
call fcn.00517960
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x30], 0
je 0x5034b1
push ebx
mov ecx, esi
call fcn.00517a20
mov ebp, eax
test ebp, ebp
jne 0x503363
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push eax
push ebp
push ecx
push edx
push ebx
mov ecx, esi
call fcn.0051b370
mov eax, dword [esp + 0x14]
test eax, eax
je 0x5032e1
mov eax, dword [esi + 0xaa0]
test eax, eax
jne 0x5032e1
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x6c], 2
je 0x5032a3
mov ecx, eax
call fcn.004d7540
mov edi, eax
jmp 0x5032a5
xor edi, edi
push 0
push 0
mov ecx, edi
mov dword [esp + 0x74], 0xffffffff
mov word [edi], 1
call fcn.004d76b0
push ebx
push 0
mov ecx, edi
call fcn.004d7780
mov ecx, dword [0x7441dc]
mov eax, dword [esi + 4]
push edi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
push ebx
push 0
push 0
call fcn.004b08d0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5034b1
mov eax, dword [esi + 0xaa0]
test eax, eax
jne 0x5034b1
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x6c], 3
je 0x503320
mov ecx, eax
call fcn.004d7540
mov edi, eax
jmp 0x503322
xor edi, edi
push 2
push 0
mov ecx, edi
mov dword [esp + 0x74], 0xffffffff
mov word [edi], 1
call fcn.004d76b0
push ebx
push 0
mov ecx, edi
call fcn.004d7780
mov edx, dword [0x7441dc]
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x24]
push edi
push edx
push eax
push ebx
push 0
push 0
call fcn.004b08d0
jmp 0x503479
mov al, byte [ebp + 4]
test al, 1
jne 0x5033f0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x5033f0
or al, 1
mov byte [ebp + 4], al
mov eax, dword [esi + 0xaa0]
test eax, eax
mov dword [esp + 0x30], 1
jne 0x5033f0
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
mov dword [esp + 0x6c], 4
je 0x5033b2
mov ecx, eax
call fcn.004d7540
mov edi, eax
jmp 0x5033b4
xor edi, edi
push 2
push 0
mov ecx, edi
mov dword [esp + 0x74], 0xffffffff
mov word [edi], 1
call fcn.004d76b0
push ebx
push 0
mov ecx, edi
call fcn.004d7780
mov ecx, dword [0x7441dc]
mov eax, dword [esi + 4]
push edi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
push ebx
push 0
push 0
call fcn.004b08d0
mov al, byte [ebp + 4]
test al, 2
jne 0x503471
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x503471
or al, 2
mov byte [ebp + 4], al
mov eax, dword [esi + 0xaa0]
test eax, eax
jne 0x503471
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
mov dword [esp + 0x6c], 5
je 0x503433
mov ecx, eax
call fcn.004d7540
mov edi, eax
jmp 0x503435
xor edi, edi
push 0
push 0
mov ecx, edi
mov dword [esp + 0x74], 0xffffffff
mov word [edi], 1
call fcn.004d76b0
push ebx
push 0
mov ecx, edi
call fcn.004d7780
mov edx, dword [0x7441dc]
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x24]
push edi
push edx
push eax
push ebx
push 0
push 0
call fcn.004b08d0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5034b1
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0xa74]
mov edx, dword [ecx + 0x6c]
test edx, edx
jne 0x5034a7
mov eax, dword [eax + 4]
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 8]
push eax
call fcn.004aee70
mov ecx, eax
call fcn.00563a00
test eax, eax
je 0x5034b1
mov dword [esi + 0xaa4], 0x1770
pop ebp
mov ecx, dword [esp + 0x60]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x60
ret 4