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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
push ebx
push esi
push edi
xor ebx, ebx
push ebx
push ebx
push 0x20
push 1
push 7
mov esi, ecx
push ebx
push ebx
lea ecx, [esp + 0x70]
mov dword [esp + 0x48], esi
mov dword [esp + 0x68], 1
mov dword [esp + 0x6c], 0x100
xor edi, edi
mov dword [esp + 0x60], ebx
call fcn.005b0808
mov ecx, eax
call fcn.005b0858
push eax
mov eax, dword [ebp + 8]
push ebx
push 0x40
push eax
push ebx
lea ecx, [esp + 0x8c]
call fcn.005b0828
mov ecx, eax
call fcn.005b0858
push eax
push 0x120089
lea ecx, [esp + 0x3c]
push ecx
call fcn.00567f58
cmp eax, ebx
jne 0x599ec0
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
push 0x38
lea eax, [esp + 0xb8]
push eax
push ebx
push ecx
call fcn.005693d8
cmp eax, ebx
mov dword [esp + 0x1c], eax
je 0x5998ec
mov edx, dword [esp + 0x14]
push edx
call fcn.00568448
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebx
push ebx
push 0x40
push edx
push ebx
lea ecx, [esp + 0x78]
call fcn.005b0828
mov ecx, eax
call fcn.005b0858
push eax
mov ecx, esi
call fcn.005957e8
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x1c]
lea ecx, [esi + 0x58]
push edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], eax
call fcn.00584cd8
test eax, eax
je 0x599963
push 8
call fcn.0055bc48
add esp, 4
cmp eax, ebx
je 0x599957
mov dword [eax + 4], esi
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov dword [esi + 4], 1
jmp 0x599959
xor eax, eax
push eax
lea ecx, [esp + 0x14]
call fcn.00583bf8
mov edx, dword [esp + 0xb0]
push ebx
push ebx
push 0x21
push 2
push 7
push edx
push ebx
lea ecx, [esp + 0x70]
call fcn.005b0808
mov ecx, eax
call fcn.005b0858
push eax
mov eax, dword [ebp + 0xc]
push ebx
push 0x40
push eax
push ebx
lea ecx, [esp + 0x8c]
call fcn.005b0828
mov ecx, eax
call fcn.005b0858
push eax
push 0x100002
lea ecx, [esp + 0x40]
push ecx
call fcn.00567f58
mov esi, eax
cmp esi, ebx
je 0x5999e4
mov edx, dword [esp + 0x14]
push edx
call fcn.00568448
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x5999d9
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push eax
mov dword [ecx + 4], edx
call fcn.0055bc38
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x5999fd
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push eax
mov dword [ecx + 4], edx
call fcn.0055bc38
add esp, 4
mov eax, dword [esp + 0x18]
push eax
call fcn.00568448
push 0x1008e3ec
lea ecx, [esp + 0x7c]
push ecx
call dword [0x100c392c]
jmp 0x599a1b
xor ebx, ebx
cmp edi, ebx
je 0x599a28
push edi
call fcn.00577f28
add esp, 4
mov esi, dword [esp + 0x50]
push esi
call fcn.00577dd8
mov edx, dword [esp + 0x50]
add esp, 4
neg edx
mov edi, eax
push ebx
sbb edx, edx
lea eax, [esp + 0x7c]
and edx, eax
push edx
push 1
push 2
push esi
push edi
lea ecx, [esp + 0xb0]
mov dword [esp + 0x5c], esi
call fcn.005b0808
mov ecx, eax
call fcn.005b0858
mov ecx, dword [esp + 0x2c]
push eax
push ebx
push ebx
push ebx
push ecx
call fcn.00568b08
cmp eax, 0xc0000004
je 0x599e3c
cmp eax, 0x80000005
je 0x599e3c
cmp eax, 0xc0000023
je 0x599e3c
cmp eax, ebx
jne 0x599e71
cmp dword [esp + 0x4c], ebx
je 0x599aa5
mov dword [esp + 0x4c], ebx
mov edx, dword [edi + 0x3c]
shr edx, 1
add edx, 1
push edx
lea ecx, [esp + 0x3c]
call fcn.0055cf58
mov eax, dword [edi + 0x3c]
mov esi, dword [esp + 0x38]
push eax
lea ecx, [edi + 0x44]
push ecx
push esi
call fcn.00577d68
mov edx, dword [esp + 0x48]
add esp, 0xc
push esi
lea ecx, [esp + 0x60]
mov word [esi + edx*2 - 2], bx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
call fcn.0055e228
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [esp + 0x28]
call fcn.005b0ad8
push 0x100832d8
lea ecx, [esp + 0x28]
call fcn.005b0bf8
mov ebx, dword [esp + 0x5c]
push ebx
lea ecx, [esp + 0x28]
call fcn.005b0bf8
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [esp + 0x34]
call fcn.005b0ad8
push 0x100832d8
lea ecx, [esp + 0x34]
call fcn.005b0bf8
push ebx
lea ecx, [esp + 0x34]
call fcn.005b0bf8
mov eax, dword [edi + 0x3c]
cmp eax, 6
jne 0x599b4e
cmp word [esi], 0x2e
jne 0x599b4e
cmp word [esi + 2], 0x2e
je 0x599b5f
cmp eax, 2
jne 0x599b59
cmp word [esi], 0x2e
je 0x599b5f
xor ebx, ebx
cmp eax, ebx
jne 0x599b9a
lea ecx, [esp + 0x30]
call fcn.005b0b78
lea ecx, [esp + 0x24]
call fcn.005b0b78
lea ecx, [esp + 0x5c]
call fcn.0055e448
test esi, esi
je 0x599a19
push esi
call fcn.00577f28
add esp, 4
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
jmp 0x599a19
test dword [edi + 0x38], 0x10
je 0x599c14
mov edx, dword [ebp + 0x10]
push edx
lea ecx, [esp + 0x28]
call fcn.005b0858
push eax
lea ecx, [esp + 0x38]
call fcn.005b0858
mov ecx, dword [esp + 0x34]
push eax
call fcn.00599838
mov esi, eax
cmp esi, ebx
je 0x599e13
mov ecx, dword [esp + 0x14]
push ecx
mov dword [esp + 0x44], edi
call fcn.00568448
lea ecx, [esp + 0x30]
call fcn.005b0b78
lea ecx, [esp + 0x24]
call fcn.005b0b78
lea ecx, [esp + 0x5c]
call fcn.0055e448
lea ecx, [esp + 0x38]
call fcn.0055e1b8
lea ecx, [esp + 0x40]
call fcn.0055e1b8
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ebx
push ebx
push 0x20
push 1
push 4
push ebx
push ebx
lea ecx, [esp + 0xc4]
call fcn.005b0808
mov ecx, eax
call fcn.005b0858
push eax
push ebx
push 0x40
lea ecx, [esp + 0x58]
call fcn.005b0858
push eax
push ebx
lea ecx, [esp + 0xb0]
call fcn.005b0828
mov ecx, eax
call fcn.005b0858
push eax
push 0x100001
lea eax, [esp + 0x38]
push eax
call fcn.00567f58
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
push ebx
push ebx
push 0x40
lea ecx, [esp + 0x38]
call fcn.005b0858
push eax
push ebx
lea ecx, [esp + 0x9c]
call fcn.005b0828
mov ecx, eax
call fcn.005b0858
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
call fcn.005957e8
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esi + 0x58]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], eax
call fcn.00584cd8
test eax, eax
je 0x599ce7
push 8
call fcn.0055bc48
add esp, 4
cmp eax, ebx
je 0x599cdb
mov dword [eax + 4], esi
mov edx, dword [esi + 4]
mov dword [eax], edx
mov dword [esi + 4], 1
jmp 0x599cdd
xor eax, eax
push eax
lea ecx, [esp + 0x1c]
call fcn.00583bf8
mov eax, dword [edi + 0x38]
push ebx
push ebx
push 0x60
push 2
push 7
push eax
push ebx
lea ecx, [esp + 0xbc]
call fcn.005b0808
mov ecx, eax
call fcn.005b0858
push eax
push ebx
push 0x40
lea ecx, [esp + 0x4c]
call fcn.005b0858
push eax
push ebx
lea ecx, [esp + 0xb0]
call fcn.005b0828
mov ecx, eax
call fcn.005b0858
push eax
push 0x100002
lea ecx, [esp + 0x70]
push ecx
call fcn.00567f58
mov esi, eax
cmp esi, ebx
jne 0x599e4b
lea ecx, [esp + 0x18]
call fcn.00583c38
push 0x400000
call fcn.00577dd8
add esp, 4
push ebx
mov ebx, dword [0x10082048]
lea edx, [esp + 0x20]
push edx
mov esi, eax
mov eax, dword [esp + 0x18]
push 0x400000
push esi
push eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0x400000
call ebx
test eax, eax
je 0x599dbc
lea esp, [esp]
mov eax, dword [esp + 0x1c]
test eax, eax
jbe 0x599dbc
mov edx, dword [esp + 0x48]
push 0
lea ecx, [esp + 0x78]
push ecx
push eax
push esi
push edx
call dword [0x100820a4]
mov ecx, dword [esp + 0x10]
push 0
lea eax, [esp + 0x20]
push eax
push 0x400000
push esi
push ecx
call ebx
test eax, eax
jne 0x599d88
lea ecx, [esp + 0x54]
call fcn.0055e1b8
cmp dword [ebp + 0x10], 0
je 0x599dff
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push 0x40
push 0
push ecx
lea ecx, [esp + 0x9c]
call fcn.005b0828
mov ecx, eax
call fcn.005b0858
mov ecx, dword [esp + 0x38]
push eax
call fcn.005957e8
mov edx, dword [esp + 0x10]
push edx
call fcn.00568448
mov eax, dword [esp + 0x48]
push eax
call fcn.00568448
lea ecx, [esp + 0x30]
call fcn.005b0b78
lea ecx, [esp + 0x24]
call fcn.005b0b78
lea ecx, [esp + 0x5c]
call fcn.0055e448
lea ecx, [esp + 0x38]
call fcn.0055e1b8
jmp 0x599a19
add esi, 0x100
mov dword [esp + 0x50], esi
jmp 0x599a1b
mov edx, dword [esp + 0x10]
push edx
mov dword [esp + 0x44], edi
call fcn.00568448
mov eax, dword [esp + 0x14]
push eax
call fcn.00568448
lea ecx, [esp + 0x18]
call fcn.00583c38
jmp 0x599bdc
cmp dword [ebp + 0x10], ebx
mov dword [esp + 0x40], edi
je 0x599eab
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x24]
push edx
push ebx
push ebx
push 0x40
push ebx
push eax
lea ecx, [esp + 0x9c]
call fcn.005b0828
mov ecx, eax
call fcn.005b0858
mov ecx, dword [esp + 0x38]
push eax
call fcn.005957e8
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00568448
lea ecx, [esp + 0x40]
call fcn.0055e1b8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc