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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x5596dc
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x55a0f8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x84
call fcn.004160e4
mov byte [ebp - 5], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xbdd4], edx
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xbddc], edx
mov eax, dword [ebp - 4]
add eax, 0xbdc8
call fcn.0040769c
mov eax, dword [ebp - 4]
mov al, byte [eax + 0xa0]
mov byte [ebp - 0x21], al
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xbdcc], edx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0xb2]
cmp al, 0xb
je 0x559757
cmp al, 0x17
jne 0x559767
mov eax, dword [ebp - 4]
cmp byte [eax + 0xa0], 0
jne 0x559767
mov byte [ebp - 0x21], 2
mov eax, dword [ebp - 4]
add eax, 0xbdd0
call fcn.0040769c
push eax
push 0x7cd07c
push 1
push 0
push 0x7cd31c
call fcn.004251e0
call fcn.00425314
test al, al
jne 0x55a04a
mov eax, dword [ebp - 4]
mov byte [eax + 0xbdd8], 0
mov edx, 0xb
mov eax, dword [ebp - 4]
call 0x781280
test al, al
je 0x55984c
mov eax, dword [ebp - 4]
test byte [eax + 0x9d], 0x10
jne 0x55984c
mov dl, 1
mov eax, dword [0x543ca8]
call fcn.00544008
mov edx, eax
test edx, edx
je 0x5597d9
sub edx, 0xfffffff0
mov eax, dword [ebp - 4]
add eax, 0xbdc8
mov ecx, 0x55a10c
call fcn.004076e0
push 0x55a120
xor eax, eax
mov al, byte [ebp - 0x21]
push dword [eax*4 + 0x7d1318]
push 0x55a138
lea eax, [ebp - 0x34]
mov edx, 3
call fcn.0040601c
mov eax, dword [ebp - 0x34]
call fcn.00405f3c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdd0]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
call fcn.00425308
test al, al
je 0x559a1a
mov eax, dword [ebp - 4]
mov byte [eax + 0xbdd8], 3
jmp 0x559a1a
xor eax, eax
push ebp
push 0x559973
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0xb
mov eax, dword [ebp - 4]
call 0x781280
test al, al
je 0x5598cb
mov eax, dword [ebp - 4]
add eax, 0xbdc8
call fcn.0040769c
push eax
push 0x7ccfcc
push 1
push 0
push 0x7cd4ac
call fcn.004251e0
call fcn.00425308
test al, al
je 0x5598cb
push 0x55a15c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdd0]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
call fcn.00425308
test al, al
je 0x5598cb
mov eax, dword [ebp - 4]
mov byte [eax + 0xbdd8], 2
jmp 0x559969
mov eax, dword [ebp - 4]
add eax, 0xbdc8
call fcn.0040769c
push eax
push 0x7ccfcc
push 1
push 0
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x180]
mov eax, dword [eax*4 + 0x7d1218]
push eax
call fcn.004251e0
call fcn.00425308
test al, al
je 0x55995c
push 0x55a198
xor eax, eax
mov al, byte [ebp - 0x21]
push dword [eax*4 + 0x7d1318]
push 0x55a138
lea eax, [ebp - 0x38]
mov edx, 3
call fcn.0040601c
mov eax, dword [ebp - 0x38]
call fcn.00405f3c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdd0]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
call fcn.00425308
test al, al
je 0x55995c
mov eax, dword [ebp - 4]
mov byte [eax + 0xbdd8], 1
jmp 0x559969
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x55a04a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5599ad
mov eax, dword [ebp - 4]
add eax, 0xbdc0
call fcn.0040769c
push eax
push 0x7cd59c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc8]
push eax
mov eax, dword [eax]
call dword [eax]
call fcn.00425314
test al, al
jne 0x55a04a
lea edx, [ebp - 0x14]
mov al, byte [ebp - 0x21]
call fcn.00558d18
cmp dword [ebp - 0x14], 0
je 0x559a1a
lea eax, [ebp - 0x10]
call fcn.0040769c
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x40]
call fcn.00425308
test al, al
je 0x559a1a
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc0]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
mov eax, dword [ebp - 4]
cmp byte [eax + 0xbdd8], 0
je 0x55a04a
mov ecx, 0x7cd71c
mov dl, 1
mov eax, dword [0x511ba0]
call fcn.00512910
mov edi, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x8c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x88]
mov eax, edi
call fcn.0051295c
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jl 0x559a91
lea ecx, [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
mov eax, edi
call fcn.00512a90
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
add eax, 0xbdf0
call fcn.004076b4
mov edx, dword [ebp - 0x1c]
mov eax, edi
call fcn.005129a4
mov edx, dword [eax + 8]
lea eax, [ebp - 0x30]
call fcn.00405614
push ebp
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x88]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xbdf0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdc8]
call fcn.0055956c
pop ecx
call fcn.00425314
test al, al
je 0x559ac8
mov eax, edi
call fcn.00404660
jmp 0x55a04a
mov dl, 1
mov eax, dword [0x425cc4]
call fcn.00428b94
mov edx, eax
test edx, edx
je 0x559add
sub edx, 0xfffffff0
mov eax, dword [ebp - 4]
add eax, 0xbde4
call fcn.004076b4
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xbdf0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde4]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xc]
call fcn.0040769c
mov edx, 0x7cd70c
mov eax, edi
call fcn.005129ac
mov eax, dword [ebp - 4]
cmp byte [eax + 0xb2], 0x13
jne 0x559b2a
mov dword [ebp - 0x2c], 5
jmp 0x559b31
mov dword [ebp - 0x2c], 2
xor eax, eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xc]
call fcn.0040769c
mov byte [ebp - 5], 0
mov esi, dword [edi + 8]
dec esi
test esi, esi
jl 0x559bc2
inc esi
xor ebx, ebx
mov edx, ebx
mov eax, edi
call fcn.005129a4
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x30]
call fcn.004059b4
jne 0x559bbe
lea ecx, [ebp - 0xc]
mov edx, ebx
mov eax, edi
call fcn.00512a90
push ebp
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde4]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x40]
push eax
mov edx, ebx
mov eax, edi
call fcn.005129a4
mov ecx, dword [eax]
mov edx, dword [ebp - 0xc]
pop eax
call fcn.0055956c
pop ecx
call fcn.00425308
test al, al
je 0x559bb6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde4]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x559bc2
lea eax, [ebp - 0xc]
call fcn.0040769c
inc ebx
dec esi
jne 0x559b4d
cmp dword [ebp - 0xc], 0
jne 0x559c58
mov eax, dword [ebp - 4]
mov al, byte [eax + 0xa6]
mov byte [ebp - 5], al
mov esi, dword [edi + 8]
dec esi
test esi, esi
jl 0x559c58
inc esi
xor ebx, ebx
mov edx, ebx
mov eax, edi
call fcn.005129a4
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x30]
call fcn.004059b4
je 0x559c54
lea ecx, [ebp - 0xc]
mov edx, ebx
mov eax, edi
call fcn.00512a90
push ebp
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde4]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x44]
push eax
mov edx, ebx
mov eax, edi
call fcn.005129a4
mov ecx, dword [eax]
mov edx, dword [ebp - 0xc]
pop eax
call fcn.0055956c
pop ecx
call fcn.00425308
test al, al
je 0x559c4c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde4]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x559c58
lea eax, [ebp - 0xc]
call fcn.0040769c
inc ebx
dec esi
jne 0x559be3
inc dword [ebp - 0x1c]
cmp dword [ebp - 0xc], 0
je 0x559c6d
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x2c]
jl 0x559b36
mov eax, edi
call fcn.00404660
mov byte [ebp - 5], 0
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3c]
and al, byte [0x55a1c4]
mov dl, byte [0x55a1c8]
cmp dl, al
jne 0x559d19
mov eax, dword [ebp - 4]
cmp dword [eax + 0x14], 0
je 0x559d19
mov eax, dword [ebp - 4]
push eax
push 0x781b70
mov dl, 1
mov eax, dword [0x5444e4]
call fcn.00544a70
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0xbddc], ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x18]
mov eax, ebx
call fcn.00544af8
test al, al
jne 0x559cdf
mov eax, dword [ebp - 4]
add eax, 0xbddc
call fcn.004160e4
mov eax, dword [ebp - 4]
cmp dword [eax + 0xbddc], 0
je 0x559d19
push 0x55a1d4
mov eax, dword [ebp - 4]
push dword [eax + 0x18]
push 0x55a1e4
mov eax, dword [ebp - 4]
push dword [eax + 0x14]
lea eax, [ebp - 0x48]
mov edx, 4
call fcn.00405928
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 4]
call fcn.005594f8
mov dl, 1
mov eax, dword [0x541edc]
call fcn.00542120
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0xbdb8], ebx
mov eax, dword [ebp - 4]
add eax, 0xbdbc
mov edx, ebx
test edx, edx
je 0x559d41
sub edx, 0xffffffb0
call fcn.004076b4
push ebp
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde4]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xbdbc]
mov ecx, 0x55a1f0
call fcn.0055956c
pop ecx
call fcn.00425314
test al, al
je 0x559d8a
mov edx, 0x55a20c
mov eax, dword [ebp - 4]
call fcn.005594f8
jmp 0x55a04a
mov eax, dword [ebp - 4]
cmp byte [eax + 0xbdd8], 1
jne 0x559de9
lea eax, [ebp - 0x28]
call fcn.0040769c
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdbc]
xor ecx, ecx
call fcn.0051240c
test al, al
je 0x559de9
lea eax, [ebp - 0x20]
call fcn.0040769c
push eax
mov eax, dword [ebp - 4]
add eax, 0xbdd4
push eax
mov eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xbdc8]
mov ecx, 0x55a230
call fcn.004076e0
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov dl, 1
mov eax, dword [0x425cc4]
call fcn.00428b94
mov edx, eax
test edx, edx
je 0x559dfe
sub edx, 0xfffffff0
mov eax, dword [ebp - 4]
add eax, 0xbde0
call fcn.004076b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde4]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x559e6a
inc esi
xor ebx, ebx
lea eax, [ebp - 0x18]
call fcn.0040769c
push eax
push 0x7cd77c
lea ecx, [ebp - 0x54]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde4]
mov edx, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x54]
push eax
mov eax, dword [eax]
call dword [eax]
call fcn.00425308
test al, al
je 0x559e66
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde0]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc ebx
dec esi
jne 0x559e23
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbde0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x559e89
mov eax, dword [ebp - 4]
add eax, 0xbde0
call fcn.0040769c
lea ecx, [ebp - 0x58]
mov edx, 0x7cd7bc
mov eax, dword [ebp - 4]
call fcn.00559110
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 4]
add eax, 0xbde8
call fcn.004076b4
lea ecx, [ebp - 0x5c]
mov edx, 0x7cd78c
mov eax, dword [ebp - 4]
call fcn.00559110
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 4]
add eax, 0xbdec
call fcn.004076b4
mov eax, dword [ebp - 4]
add eax, 0xbdc4
call fcn.0040769c
push eax
push 0x7cd12c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdd0]
push eax
mov eax, dword [eax]
call dword [eax]
call fcn.00425308
mov byte [ebp - 6], al
cmp byte [ebp - 6], 0
je 0x559f5e
xor edx, edx
push ebp
push 0x559f50
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x78]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84]
test eax, eax
je 0x559f3b
cmp byte [eax + 0x1b], 0
je 0x559f3b
mov edx, 0x55a248
mov eax, dword [ebp - 4]
call fcn.005594f8
mov eax, dword [ebp - 4]
add eax, 0x84
call fcn.004160e4
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x30]
mov byte [ebp - 6], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x559f5e
cmp byte [ebp - 6], 0
jne 0x559faa
mov eax, dword [ebp - 4]
push dword [eax + 0x88]
push 0x55a260
lea ecx, [ebp - 0x64]
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [eax + 0xb2]
mov eax, dword [0x5205cc]
call fcn.00424020
push dword [ebp - 0x64]
lea eax, [ebp - 0x60]
mov edx, 3
call fcn.00405928
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 4]
call fcn.005594f8
jmp 0x55a04a
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0xbddc]
test ebx, ebx
je 0x559fef
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x54a800]
call fcn.0054ef4c
mov edx, dword [ebp - 4]
mov dword [edx + 0x84], eax
xor ecx, ecx
mov edx, 0xa
mov eax, dword [ebp - 4]
call 0x782024
mov edx, 0x55a27c
mov eax, dword [ebp - 4]
call fcn.005594f8
lea ecx, [ebp - 0x68]
mov eax, dword [ebp - 4]
xor edx, edx
mov dl, byte [eax + 0xb2]
mov eax, dword [0x5205cc]
call fcn.00424020
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 4]
call fcn.005594f8
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x74]
mov edx, 5
mov eax, dword [ebp - 4]
call 0x781280
test al, al
je 0x55a033
mov eax, dword [ebp - 4]
call 0x782054
mov eax, dword [ebp - 4]
lea edx, [eax + 0xbdcc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbdd0]
call fcn.00511d3c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55a102
lea eax, [ebp - 0x68]
mov edx, 3
call fcn.004055a0
lea eax, [ebp - 0x5c]
mov edx, dword [0x425b74]
mov ecx, 2
call fcn.00406458
lea eax, [ebp - 0x54]
call fcn.0040769c
lea eax, [ebp - 0x50]
call fcn.0040769c
lea eax, [ebp - 0x4c]
call fcn.0040769c
lea eax, [ebp - 0x48]
call fcn.0040557c
lea eax, [ebp - 0x44]
mov edx, dword [0x4011b8]
mov ecx, 2
call fcn.00406458
lea eax, [ebp - 0x3c]
call fcn.0040769c
lea eax, [ebp - 0x38]
mov edx, 2
call fcn.00405cf4
lea eax, [ebp - 0x30]
call fcn.0040557c
lea eax, [ebp - 0x28]
call fcn.0040769c
lea eax, [ebp - 0x20]
call fcn.0040769c
lea eax, [ebp - 0x18]
call fcn.0040769c
lea eax, [ebp - 0x14]
call fcn.0040769c
lea eax, [ebp - 0x10]
call fcn.0040769c
lea eax, [ebp - 0xc]
call fcn.0040769c
ret