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

Disassembly:
push 0xffffffffffffffff
push 0x745368
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
mov al, byte [esp + 0x2c]
push ebx
push ebp
push esi
mov ebx, ecx
xor ebp, ebp
push edi
push ebp
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], al
call fcn.00404760
mov dword [esp + 0x30], ebp
mov edi, 0x7a5e58
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e58
lea ecx, [esp + 0x20]
call fcn.004047b0
mov ecx, dword [0x76560c]
mov edx, dword [esp + 0x38]
push ecx
push 0
push edx
lea ecx, [esp + 0x24]
call fcn.00413a70
push ebp
lea eax, [esp + 0x14]
push 0x7a5e54
push eax
call fcn.00727335
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x20]
call fcn.00413b50
mov eax, dword [ebx + 0x70]
mov esi, dword [eax]
cmp eax, esi
je 0x502127
mov edi, dword [esi + 8]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x5020f3
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x502100
mov ecx, 0x765608
push eax
push ecx
call dword [fcn.0076528c]
test eax, eax
je 0x502117
mov esi, dword [esi]
mov eax, dword [ebx + 0x70]
cmp eax, esi
jne 0x5020e4
jmp 0x502127
test edi, edi
je 0x502127
mov eax, dword [esp + 0x3c]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x44]
inc ebp
cmp ebp, 3
jl 0x502076
xor ebp, ebp
mov edi, 0x7a5798
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5798
lea ecx, [esp + 0x20]
call fcn.004047b0
mov ecx, dword [0x76560c]
mov edx, dword [esp + 0x38]
push ecx
push 0
push edx
lea ecx, [esp + 0x24]
call fcn.00413a70
push ebp
lea eax, [esp + 0x14]
push 0x7a3f58
push eax
call fcn.00727335
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x20]
call fcn.00413b50
mov eax, dword [ebx + 0x70]
mov esi, dword [eax]
cmp eax, esi
je 0x5021ea
mov edi, dword [esi + 8]
cmp dword [edi + 0x78], 1
jne 0x5021cf
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x5021b6
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x5021c3
mov ecx, 0x765608
push eax
push ecx
call dword [fcn.0076528c]
test eax, eax
je 0x5021da
mov esi, dword [esi]
mov eax, dword [ebx + 0x70]
cmp eax, esi
jne 0x5021a1
jmp 0x5021ea
test edi, edi
je 0x5021ea
mov eax, dword [esp + 0x3c]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x44]
inc ebp
cmp ebp, 3
jl 0x502133
mov ecx, dword [0x93c97c]
mov eax, dword [ecx + 0x490]
cmp eax, 1
jne 0x5023d6
mov edi, 0x7a5e40
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e40
lea ecx, [esp + 0x20]
call fcn.004047b0
mov eax, dword [ebx + 0x70]
mov ebp, dword [fcn.0076528c]
mov esi, dword [eax]
cmp eax, esi
je 0x502272
mov edi, dword [esi + 8]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x502245
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x502252
mov ecx, 0x765608
push eax
push ecx
call ebp
test eax, eax
je 0x502265
mov esi, dword [esi]
mov eax, dword [ebx + 0x70]
cmp eax, esi
jne 0x502236
jmp 0x502272
test edi, edi
je 0x502272
mov edx, dword [edi]
push 0
mov ecx, edi
call dword [edx + 0x44]
mov edi, 0x7a5e30
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e30
lea ecx, [esp + 0x20]
call fcn.004047b0
mov eax, dword [ebx + 0x70]
mov esi, dword [eax]
cmp eax, esi
je 0x5022d5
mov edi, dword [esi + 8]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x5022a8
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x5022b5
mov ecx, 0x765608
push eax
push ecx
call ebp
test eax, eax
je 0x5022c8
mov esi, dword [esi]
mov eax, dword [ebx + 0x70]
cmp eax, esi
jne 0x502299
jmp 0x5022d5
test edi, edi
je 0x5022d5
mov eax, dword [edi]
push 0
mov ecx, edi
call dword [eax + 0x44]
mov edi, 0x7a5e1c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e1c
lea ecx, [esp + 0x20]
call fcn.004047b0
lea edx, [esp + 0x14]
lea ecx, [ebx + 0x6c]
push edx
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x50234f
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x50231a
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x502327
mov ecx, 0x765608
push eax
push ecx
call ebp
test eax, eax
je 0x502342
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x70]
mov eax, dword [eax]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x50230b
jmp 0x50234f
test esi, esi
je 0x50234f
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x44]
mov edi, 0x7a5e08
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e08
lea ecx, [esp + 0x20]
call fcn.004047b0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x6c]
push eax
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x5025ca
mov edi, dword [fcn.0076528c]
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x50239e
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x5023ab
mov ecx, 0x765608
push eax
push ecx
call edi
test eax, eax
je 0x5023c9
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x70]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x50238f
jmp 0x5025ca
test esi, esi
je 0x5025ca
jmp 0x5025c1
mov edi, 0x7a5df4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5df4
lea ecx, [esp + 0x20]
call fcn.004047b0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x6c]
push eax
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x502456
mov edi, dword [fcn.0076528c]
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x502421
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x50242e
mov ecx, 0x765608
push eax
push ecx
call edi
test eax, eax
je 0x502449
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x70]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x502412
jmp 0x502456
test esi, esi
je 0x502456
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x44]
mov edi, 0x7a5de4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5de4
lea ecx, [esp + 0x20]
call fcn.004047b0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x6c]
push eax
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x14]
mov ebp, dword [fcn.0076528c]
cmp ecx, eax
je 0x5024d6
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x5024a1
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x5024ae
mov ecx, 0x765608
push eax
push ecx
call ebp
test eax, eax
je 0x5024c9
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x70]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x502492
jmp 0x5024d6
test esi, esi
je 0x5024d6
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x44]
mov edi, 0x7a5dd8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5dd8
lea ecx, [esp + 0x20]
call fcn.004047b0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x6c]
push eax
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x502550
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x50251b
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x502528
mov ecx, 0x765608
push eax
push ecx
call ebp
test eax, eax
je 0x502543
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x70]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x50250c
jmp 0x502550
test esi, esi
je 0x502550
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x44]
mov edi, 0x7a5dc8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5dc8
lea ecx, [esp + 0x20]
call fcn.004047b0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x6c]
push eax
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x5025ca
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x502595
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x5025a2
mov ecx, 0x765608
push eax
push ecx
call ebp
test eax, eax
je 0x5025bd
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x70]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x502586
jmp 0x5025ca
test esi, esi
je 0x5025ca
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x44]
mov al, byte [esp + 0x3c]
test al, al
jne 0x50277d
mov edi, 0x7a5e58
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e58
lea ecx, [esp + 0x20]
call fcn.004047b0
mov eax, dword [0x76560c]
mov ecx, dword [esp + 0x38]
push eax
push 0
push ecx
lea ecx, [esp + 0x24]
call fcn.00413a70
lea edx, [esp + 0x3c]
lea ecx, [ebx + 0x6c]
push edx
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x3c]
mov ebp, dword [fcn.0076528c]
cmp ecx, eax
je 0x50266c
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x502637
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x502644
mov ecx, 0x765608
push eax
push ecx
call ebp
test eax, eax
je 0x50265f
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x70]
mov eax, dword [eax]
cmp ecx, eax
mov dword [esp + 0x3c], eax
jne 0x502628
jmp 0x50266c
test esi, esi
je 0x50266c
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x44]
mov edi, 0x7a5dbc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5dbc
lea ecx, [esp + 0x20]
call fcn.004047b0
lea eax, [esp + 0x3c]
lea ecx, [ebx + 0x6c]
push eax
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
je 0x5026e6
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x5026b1
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x5026be
mov ecx, 0x765608
push eax
push ecx
call ebp
test eax, eax
je 0x5026d9
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x70]
cmp ecx, eax
mov dword [esp + 0x3c], eax
jne 0x5026a2
jmp 0x5026e6
test esi, esi
je 0x5026e6
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x44]
mov edi, 0x7a5b24
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5b24
lea ecx, [esp + 0x20]
call fcn.004047b0
lea eax, [esp + 0x3c]
lea ecx, [ebx + 0x6c]
push eax
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
je 0x502a59
mov edi, dword [fcn.0076528c]
mov ebp, 1
mov esi, dword [eax + 8]
cmp dword [esi + 0x78], ebp
jne 0x502758
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x50273f
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x50274c
mov ecx, 0x765608
push eax
push ecx
call edi
test eax, eax
je 0x50276a
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov ecx, dword [ebx + 0x70]
cmp ecx, eax
mov dword [esp + 0x3c], eax
jne 0x50272b
jmp 0x502a59
test esi, esi
je 0x502a59
mov edx, dword [esi]
push 0
mov ecx, esi
jmp 0x502a56
mov eax, dword [0x93c97c]
mov eax, dword [eax + 0x494]
lea ebp, [eax - 0x6a]
cmp ebp, 0x6a
ja case.0x5028c0.8
xor ecx, ecx
mov cl, byte [ebp + 0x502a8c]
jmp dword [ecx*4 + 0x502a84]
mov edi, 0x7a5dbc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5dbc
lea ecx, [esp + 0x20]
call fcn.004047b0
lea edx, [esp + 0x14]
lea ecx, [ebx + 0x6c]
push edx
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x502826
mov edi, dword [fcn.0076528c]
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x5027ee
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x5027fb
mov ecx, 0x765608
push eax
push ecx
call edi
test eax, eax
je 0x502816
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x70]
mov eax, dword [eax]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x5027df
jmp 0x502826
test esi, esi
je 0x502826
mov eax, dword [esp + 0x3c]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x44]
mov edi, 0x7a5b24
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5b24
lea ecx, [esp + 0x20]
call fcn.004047b0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [ebx + 0x6c]
call fcn.006bc010
mov ecx, dword [ebx + 0x70]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je case.0x50279c.107
mov edi, dword [fcn.0076528c]
mov esi, dword [eax + 8]
cmp dword [esi + 0x78], 1
jne 0x502890
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x502877
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x502884
mov ecx, 0x765608
push eax
push ecx
call edi
test eax, eax
je 0x50289f
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebx + 0x70]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x502862
jmp case.0x50279c.107
test esi, esi
je case.0x50279c.107
mov eax, dword [esp + 0x3c]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x44]
cmp ebp, 0x6a
ja case.0x5028c0.8
xor ecx, ecx
mov cl, byte [ebp + 0x502b1c]
jmp dword [ecx*4 + 0x502af8]
mov edi, 0x7a5e40
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e40
lea ecx, [esp + 0x20]
call fcn.004047b0
jmp 0x502a0b
mov edi, 0x7a5e30
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e30
lea ecx, [esp + 0x20]
call fcn.004047b0
jmp 0x502a0b
mov edi, 0x7a5e1c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e1c
lea ecx, [esp + 0x20]
call fcn.004047b0
jmp 0x502a0b
mov edi, 0x7a5e08
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e08
lea ecx, [esp + 0x20]
call fcn.004047b0
jmp 0x502a0b
mov edi, 0x7a5df4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5df4
lea ecx, [esp + 0x20]
call fcn.004047b0
jmp 0x502a0b
mov edi, 0x7a5de4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5de4
lea ecx, [esp + 0x20]
call fcn.004047b0
jmp 0x502a0b
mov edi, 0x7a5dd8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5dd8
lea ecx, [esp + 0x20]
call fcn.004047b0
jmp 0x502a0b
mov edi, 0x7a5dc8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5dc8
lea ecx, [esp + 0x20]
call fcn.004047b0
jmp 0x502a0b
mov edi, 0x7a5e58
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x7a5e58
lea ecx, [esp + 0x20]
call fcn.004047b0
mov edx, dword [0x76560c]
mov eax, dword [esp + 0x38]
push edx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.00413a70
mov eax, dword [ebx + 0x70]
mov esi, dword [eax]
cmp eax, esi
je 0x502a59
mov ebp, dword [fcn.0076528c]
mov edi, dword [esi + 8]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x502a29
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x502a36
mov ecx, 0x765608
push eax
push ecx
call ebp
test eax, eax
je 0x502a49
mov esi, dword [esi]
mov eax, dword [ebx + 0x70]
cmp eax, esi
jne 0x502a1a
jmp 0x502a59
test edi, edi
je 0x502a59
mov eax, dword [esp + 0x3c]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x44]
push 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], 0xffffffff
call fcn.00404760
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x24
ret 8