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

Disassembly:
push 0xffffffffffffffff
push 0x4dc0ea
mov eax, dword fs:[0]
push eax
sub esp, 0xf4
mov eax, dword [0x513330]
xor eax, esp
mov dword [esp + 0xf0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x513330]
xor eax, esp
push eax
lea eax, [esp + 0x108]
mov dword fs:[0], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], ecx
xor ebx, ebx
mov dword [esp + 0x110], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0x114], 1
call fcn.00487b40
cmp dword [esp + 0x48], ebx
jne 0x487efd
lea eax, [esp + 0x3c]
push eax
mov ecx, 0x4e7868
call fcn.00405a00
mov dword [esp + 0x40], ebx
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0x118], 2
call fcn.0047aaf0
mov byte [esp + 0x110], 1
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x487efd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov byte [esp + 0x110], 3
mov ecx, dword [esp + 0x120]
cmp dword [ecx - 0xc], ebx
jne 0x487f76
lea esi, [esp + 0x3c]
call fcn.00487a70
mov esi, eax
lea edi, [esp + 0x120]
mov byte [esp + 0x110], 4
call fcn.004082a0
mov edx, dword [esi + 4]
mov byte [esp + 0x110], 3
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov dword [esp + 0x124], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x487f76
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x34], ebx
cmp ecx, ebx
jbe 0x488441
jmp 0x487f90
mov eax, dword [esp + 0x34]
cmp eax, ecx
jae 0x48848e
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + eax*8]
sub eax, 0x10
call fcn.00408230
add eax, 0x10
mov dword [esp + 0x68], eax
push 1
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0xc0]
push eax
mov byte [esp + 0x11c], 5
call fcn.00484710
push 0xa
push 0xa
lea ecx, [esp + 0xf8]
mov byte [esp + 0x118], 6
mov edx, dword [esp + 0x12c]
push ecx
push edx
call fcn.004a9391
mov eax, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x50]
push ecx
mov ebx, 0x4ecfc0
call fcn.00439b90
push eax
lea edx, [esp + 0x98]
push edx
mov ebx, 0x4f03f8
mov byte [esp + 0x130], 7
call fcn.00439b90
push eax
lea eax, [esp + 0x9c]
push eax
mov ebx, 0x4ecfc0
mov byte [esp + 0x138], 8
call fcn.00439b90
lea ecx, [esp + 0x148]
push ecx
lea edx, [esp + 0x9c]
push edx
mov ebx, eax
mov byte [esp + 0x140], 9
call fcn.00439ad0
push eax
lea eax, [esp + 0xa8]
push eax
mov ebx, 0x4ecfc0
mov byte [esp + 0x148], 0xa
call fcn.00439b90
push eax
lea ecx, [esp + 0xa0]
push ecx
lea ebx, [esp + 0x130]
mov byte [esp + 0x150], 0xb
call fcn.00439b90
add esp, 0x40
mov byte [esp + 0x110], 0xd
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4880bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x110], 0xe
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4880e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x110], 0xf
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48810b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x110], 0x10
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x488133
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x110], 0x11
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48815b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00476fe0
add esp, 8
mov byte [esp + 0x110], 0x12
mov ebx, dword [esp + 0x18]
cmp dword [ebx - 4], 1
mov esi, dword [ebx - 0xc]
jle 0x488193
mov eax, esi
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00461e00
mov ebx, dword [esp + 0x18]
mov eax, esi
lea esi, [esp + 0xb8]
call fcn.00484880
mov eax, dword [esp + 0xbc]
xor esi, esi
cmp eax, esi
je 0x4881d2
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xe4]
push ecx
push edx
call fcn.00452f70
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.004a9558
add esp, 8
cmp eax, esi
jl 0x48848e
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx - 8]
jg 0x48848e
mov dword [ecx - 0xc], eax
mov ecx, dword [esp + 0x18]
mov byte [eax + ecx], 0
mov eax, dword [esp + 0xcc]
mov edi, dword [esp + 0xc8]
mov ebx, eax
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov byte [esp + 0x110], 0x13
cmp eax, esi
jne 0x48823f
xor ebx, ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], esi
jmp 0x488265
ja 0x488249
mov ebx, eax
mov dword [esp + 0x58], ebx
jmp 0x488265
lea esi, [esp + 0x54]
call fcn.00461cf0
test al, al
je 0x488261
call fcn.004839e0
mov dword [esp + 0x58], ebx
jmp 0x488265
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x54]
push edx
push edi
push eax
call fcn.004adad0
mov ebp, dword [esp + 0x2c]
lea edi, [ebx + ebp]
xor esi, esi
add esp, 0xc
cmp edi, esi
jne 0x4882a4
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x48829a
push eax
call fcn.004a594c
add esp, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jmp 0x4882d3
cmp edi, dword [esp + 0x24]
ja 0x4882b5
cmp edi, ebp
jbe 0x4882cf
call fcn.004839e0
jmp 0x4882cf
mov eax, edi
lea esi, [esp + 0x1c]
call fcn.00461cf0
test al, al
je 0x488498
call fcn.004839e0
xor esi, esi
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + ebp]
mov ebp, dword [esp + 0x54]
cmp ebx, esi
jbe 0x4882f3
mov ecx, ebp
sub ecx, eax
mov esi, ebx
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
sub esi, 1
jne 0x4882e8
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
add ebx, dword [esp + 0x6c]
mov edi, ecx
cmp ecx, dword [esp + 0x24]
jb 0x48831f
lea eax, [ecx + 1]
lea esi, [esp + 0x1c]
call fcn.00461cf0
test al, al
je 0x488498
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
add eax, edi
je 0x48832a
mov byte [eax], 0x23
inc ecx
mov dword [esp + 0x20], ecx
mov edi, ecx
cmp ecx, dword [esp + 0x24]
jb 0x48834f
lea eax, [ecx + 1]
lea esi, [esp + 0x1c]
call fcn.00461cf0
test al, al
je 0x488498
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
lea eax, [edi + edx]
test eax, eax
je 0x48835d
mov byte [eax], 0x23
inc ecx
mov dword [esp + 0x20], ecx
mov edi, ecx
cmp ecx, dword [esp + 0x24]
jb 0x488382
lea eax, [ecx + 1]
lea esi, [esp + 0x1c]
call fcn.00461cf0
test al, al
je 0x488498
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
add eax, edi
je 0x48838d
mov byte [eax], 0x23
inc ecx
add ebx, 3
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], ebx
test ebp, ebp
je 0x4883a6
push ebp
call fcn.004a594c
add esp, 4
mov byte [esp + 0x110], 0x11
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4883ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x110], 6
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4883f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xb8]
call fcn.004847c0
mov byte [esp + 0x110], 3
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48842a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
inc eax
mov dword [esp + 0x34], eax
cmp eax, ecx
jb 0x487f90
xor ebx, ebx
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
mov esi, dword [ebp + 0x10]
lea edi, [ebp + 0x10]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x4884b1
cmp dword [esi + 0xc], ebx
lea ebp, [esi + 0xc]
jl 0x4884a2
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4884a2
call fcn.00408230
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x488487
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [edi], ebx
jmp 0x4884ad
push 0x80070057
call fcn.00405ef0
push 0x8007000e
call fcn.00405ef0
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, edi
call fcn.00405e30
mov ebp, dword [esp + 0x38]
lea eax, [ebp + 0xc]
push 0x4f03f8
mov ebx, 3
call fcn.00405e30
mov ecx, dword [esp + 0x120]
mov esi, dword [ebp + 0x14]
lea edi, [ebp + 0x14]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x48851e
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x488513
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x488513
call fcn.00408230
mov dword [esp + 0x2c], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x488508
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x2c]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x48851e
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, edi
call fcn.00405e30
lea ecx, [esp + 0xf0]
lea eax, [ebp + 0x18]
lea esi, [ecx + 2]
jmp 0x488530
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x488530
sub ecx, esi
sar ecx, 1
lea edx, [esp + 0xf0]
push edx
mov ebx, ecx
call fcn.00405e30
lea eax, [esp + 0x80]
push eax
mov byte [ebp + 8], 1
call fcn.00484570
mov eax, dword [esp + 0x30]
mov byte [esp + 0x110], 0x14
mov ebx, dword [esp + 0x1c]
lea esi, [esp + 0x80]
call fcn.00484880
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4885aa
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0xac]
push edx
push ecx
call fcn.00452f70
mov dword [esp + 0x94], eax
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [ebp]
push eax
push ecx
push edx
call fcn.0044fd50
lea ecx, [esp + 0x80]
call fcn.004847c0
test ebx, ebx
je 0x4885e4
push ebx
call fcn.004a594c
add esp, 4
mov byte [esp + 0x110], 0
mov edi, dword [esp + 0x44]
test edi, edi
je 0x488631
mov eax, dword [esp + 0x48]
xor esi, esi
mov ebx, eax
test eax, eax
jbe 0x488628
mov eax, dword [edi + esi*8]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48861f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jb 0x488600
mov edi, dword [esp + 0x44]
push edi
call fcn.004a594c
add esp, 4
mov dword [esp + 0x110], 0xffffffff
mov eax, dword [esp + 0x120]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48865f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x108]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.004a52a5
add esp, 0x100
ret 0x10