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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x596e4e
sub esp, 0x30
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x64]
mov edx, dword [eax + 0x68]
movzx ebx, byte [0x7a0668]
test bl, bl
jne 0x596e04
movzx ecx, word [esp + 0x38]
cmp cx, 2
jne 0x596db2
mov edx, dword [esp + 0x3c]
cmp edx, 1
je 0x596da9
test edx, edx
je 0x596da9
lea ebx, [0x65ee24]
lea ebp, [0x6273f8]
test ebx, ebx
jne 0x596d9d
movzx ebx, byte [0x7a0669]
test bl, bl
jne 0x596d13
cmp cx, 3
ja 0x596cc7
cmp cx, 1
je 0x596caa
cmp cx, 2
jne 0x596c1f
test edx, edx
setne cl
mov byte [eax + 0x6c], cl
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
add esp, 0x30
ret
cmp cx, 3
jne 0x596c2a
mov dword [eax + 0x78], edx
jmp 0x596c0b
movzx ebx, byte [0x7a0669]
test bl, bl
je 0x596c0b
mov word [esp], cx
mov dword [esp + 4], edx
call fcn.00409080
mov eax, dword [esp + 8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
lea ecx, [0x5f6a60]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
movzx eax, byte [0x7a0669]
test al, al
je 0x596c0b
mov eax, dword [esp + 0x34]
mov dword [esp], eax
lea eax, [0x61bd06]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x29
lea eax, [esp + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.005927c0
jmp 0x596c0b
mov dword [eax + 0x9c], edx
mov eax, dword [eax + 0xd0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.005829c0
jmp 0x596c0b
cmp cx, 4
je 0x596cf3
cmp cx, 5
jne 0x596cde
mov dword [eax + 0x98], edx
jmp 0x596c0b
cmp cx, 6
jne 0x596c2a
mov dword [eax + 0xa0], edx
jmp 0x596c0b
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00596e60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
add esp, 0x30
ret
mov word [esp], cx
mov dword [esp + 4], edx
call fcn.00409080
mov eax, dword [esp + 8]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
lea ecx, [0x5f6a60]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
movzx eax, byte [0x7a0669]
test al, al
jne 0x596d5f
mov eax, dword [esp + 0x34]
movzx ecx, word [esp + 0x38]
mov edx, dword [esp + 0x3c]
jmp 0x596be9
mov eax, dword [esp + 0x34]
mov dword [esp], eax
lea ecx, [0x619de6]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x23
lea ecx, [esp + 0x28]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.005927c0
lea ecx, [0x5f6a60]
jmp 0x596d4d
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebp
add esp, 0x30
ret
xor ebx, ebx
xor ebp, ebp
jmp 0x596bd2
cmp cx, 4
jne 0x596dd5
mov edx, dword [esp + 0x3c]
cmp edx, 0x7fffffff
jbe 0x596da9
lea ebx, [0x65ee24]
lea ebp, [0x627420]
jmp 0x596bd2
cmp cx, 5
jne 0x596dfe
mov edx, dword [esp + 0x3c]
lea ebx, [edx - 0x4000]
cmp ebx, 0xffbfff
jbe 0x596da9
lea ebx, [0x65ee24]
lea ebp, [0x6273f8]
jmp 0x596bd2
mov edx, dword [esp + 0x3c]
jmp 0x596da9
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.0058f530
mov eax, dword [esp + 0x1c]
cmp dword [esp + 4], eax
setne al
mov ecx, dword [esp + 0x18]
cmp dword [esp], ecx
setne cl
or eax, ecx
test al, al
jne 0x596e35
mov eax, dword [esp + 0x34]
jmp 0x596ba2
lea eax, [0x5db180]
mov dword [esp], eax
lea eax, [0x65be50]
mov dword [esp + 4], eax
call fcn.00431a30
nop
call fcn.0045c8b0
jmp fcn.00596b70