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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2bc
push ebx
push esi
push edi
lea eax, [esp + 0x4c]
mov esi, ecx
push 4
xor ebx, ebx
push eax
mov dword [esp + 0xd4], esi
mov dword [esp + 0x28], ebx
call fcn.00577d48
lea ecx, [esp + 0x40]
push 4
push ecx
call fcn.00577d48
add esp, 0x10
lea edx, [esp + 0x4c]
push edx
lea eax, [ebp + 8]
push eax
lea ecx, [esi + 0x58]
call fcn.005b3c38
test eax, eax
mov edi, dword [ebp + 8]
je 0x596c7f
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
cmp eax, 2
je 0x596c3c
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x38]
mov dword [ecx], ebx
mov dword [edx], 0xc000000d
jmp 0x5996e6
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
push eax
call fcn.0059f6a8
add esp, 4
test eax, eax
jne 0x596dc5
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x38]
mov dword [eax], ebx
mov eax, dword [esp + 0x38]
cmp eax, ebx
mov dword [ecx], 0xc0000022
je 0x5996fa
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x5996f6
lea ecx, [esp + 0x15c]
call fcn.005b0418
lea eax, [esp + 0x15c]
push eax
push ebx
push 0x40
push ebx
push edi
lea ecx, [esp + 0x1b8]
call fcn.005b0828
mov ecx, eax
call fcn.005b0858
push eax
mov ecx, esi
call fcn.0058b018
test eax, eax
jne 0x596d05
mov eax, dword [esp + 0x184]
cmp eax, ebx
mov ecx, dword [ebp + 0x34]
mov dword [ecx], 1
je 0x596cda
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0x184], ebx
mov eax, dword [esp + 0x164]
cmp eax, ebx
je 0x596cf4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x164], ebx
lea ecx, [esp + 0x15c]
call fcn.005b0b78
jmp 0x5996e6
lea ecx, [esp + 0x15c]
call fcn.005b0408
mov ecx, eax
call fcn.0059efe8
test eax, eax
lea ecx, [esp + 0x15c]
je 0x596d36
mov eax, dword [ebp + 0x34]
mov dword [eax], 1
call fcn.005831e8
jmp 0x5996e6
lea eax, [esp + 0x40]
push eax
call fcn.005c5f78
push eax
lea ecx, [esp + 0x3c]
call fcn.005d9788
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x596d5a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
cmp eax, 2
je 0x596db9
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
je 0x596dae
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x38]
mov dword [eax], ebx
mov dword [ecx], 0xc000000d
lea ecx, [esp + 0x15c]
call fcn.005831e8
lea ecx, [esp + 0x38]
call fcn.005b1928
lea ecx, [esp + 0x4c]
call fcn.005b1928
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
mov edx, dword [ebp + 0x34]
mov dword [edx], 1
jmp 0x596d87
lea ecx, [esp + 0x15c]
call fcn.005831e8
lea eax, [esp + 0x34]
push 4
push eax
call fcn.00577d48
mov eax, dword [esp + 0x54]
add esp, 8
cmp eax, ebx
je 0x596e0a
mov ecx, dword [eax]
lea edx, [esp + 0x34]
push edx
push 0x1008e3f0
push eax
mov eax, dword [ecx]
call eax
test eax, eax
je 0x596e0a
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x38]
mov dword [ecx], ebx
lea ecx, [esp + 0x34]
mov dword [edx], 0xc0000229
call fcn.005b1928
jmp 0x596d93
push 0x200
push ebx
mov dword [esp + 0xe8], 0xff
call fcn.00577e78
mov ecx, dword [ebp + 0x2c]
add esp, 8
cmp ecx, ebx
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ebx
mov word [eax], bx
je 0x596e73
cmp dword [ecx + 4], ebx
je 0x596e73
push ecx
lea eax, [esp + 0xf4]
push eax
call fcn.0055f248
mov eax, dword [eax]
add esp, 8
push eax
lea ecx, [esp + 0xdc]
call fcn.0055e228
lea ecx, [esp + 0xf0]
call fcn.0055e448
mov eax, dword [esp + 0xd8]
cmp dword [0x100c3710], ebx
je 0x596ec5
push 0x10082b08
sub esp, 0xc
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
call fcn.0055e228
push 0x1008e9c0
lea ecx, [esp + 0x104]
call fcn.00573238
mov ecx, eax
call fcn.00572168
mov ecx, eax
call fcn.0055f218
mov ecx, eax
call fcn.00572168
lea ecx, [esp + 0xf0]
call fcn.00572078
lea ecx, [esp + 0x148]
call fcn.005b0a58
lea ecx, [esp + 0x148]
push ecx
push edi
mov ecx, esi
call fcn.00588238
lea ecx, [esp + 0x148]
call fcn.005b0858
push eax
lea edx, [esp + 0xe8]
push edx
call fcn.0055f248
add esp, 8
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esi + 0x154]
mov dword [esp + 0xdc], ebx
mov dword [esp + 0x48], edi
call fcn.00585f28
mov eax, dword [esp + 0xd4]
cmp eax, ebx
mov edi, dword [0x100821cc]
je 0x596f35
push eax
call edi
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x596f3f
push eax
call edi
lea edx, [ebp + 8]
add esi, 0xe8
push edx
mov ecx, esi
call fcn.00584cd8
mov edi, eax
neg edi
sbb edi, edi
lea eax, [esp + 0x18]
push 4
add edi, 1
push eax
mov dword [esp + 0x158], edi
call fcn.00577d48
add esp, 8
cmp edi, ebx
je 0x59784d
lea ecx, [esp + 0x40]
push ecx
call fcn.0059e888
add esp, 4
push eax
lea ecx, [esp + 0x1c]
call fcn.005d9788
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x596f9e
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [ebp + 8]
push edx
mov ecx, esi
call fcn.005b3d68
mov eax, dword [esp + 0xd8]
sub esp, 0xc
mov ecx, esp
push eax
mov dword [ecx], ebx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
call fcn.0055e228
mov ecx, dword [esp + 0x24]
call fcn.0059e918
mov ecx, dword [esp + 0x38]
cmp ecx, ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x58], 0x10082364
mov word [esp + 0x54], bx
mov word [esp + 0x56], bx
je 0x597693
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
lea eax, [esp + 0xd0]
push eax
call edx
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
lea edx, [esp + 0xc8]
push edx
call eax
lea ecx, [esp + 0x14]
push 4
push ecx
call fcn.00577d48
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
add esp, 8
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x18]
push eax
call edx
test eax, eax
jne 0x597126
cmp dword [esp + 0x50], ebx
je 0x597071
lea ecx, [esp + 0x94]
call fcn.00583d88
jmp 0x5970e3
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x144]
push eax
call edx
mov ecx, eax
call fcn.005b0858
push eax
lea eax, [esp + 0x8c]
push eax
call fcn.0055f248
add esp, 8
push eax
lea ecx, [esp + 0x9c]
call fcn.00583b28
mov eax, dword [esp + 0x84]
cmp eax, ebx
je 0x5970d7
push eax
call fcn.00577f28
add esp, 4
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
lea ecx, [esp + 0x140]
call fcn.005b0b78
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x5970f7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], ebx
lea eax, [esp + 0x14]
push 4
push eax
call fcn.00577d48
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
add esp, 8
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x18]
push eax
call edx
test eax, eax
je 0x59705d
lea ecx, [esp + 0x14]
call fcn.005b1928
mov esi, dword [0x100c3678]
mov edi, dword [0x10082218]
push 2
push ebx
push ebx
lea eax, [esp + 0x108]
push eax
add esi, 0x464
call edi
mov ecx, dword [ebp + 8]
push eax
push ecx
call edi
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
call eax
test eax, eax
jne 0x59765f
mov dword [esp + 0x3c], 0x100
mov dword [esp + 0x90], 1
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x597196
push eax
call fcn.00577f28
add esp, 4
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x3c]
push edi
call fcn.00577dd8
mov esi, dword [0x100c3678]
mov ecx, dword [esp + 0x94]
add esp, 4
add esi, 0x524
cmp ecx, ebx
setne dl
neg ecx
sbb ecx, ecx
and ecx, dword [ebp + 0x2c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
push edx
push ecx
mov ecx, dword [ebp + 0x24]
push 1
push ecx
push edi
push eax
lea ecx, [esp + 0x1d4]
call fcn.005b0808
mov ecx, eax
call fcn.005b0858
mov edx, dword [esp + 0x114]
push eax
mov eax, dword [esi]
push ebx
push ebx
push ebx
push edx
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
call eax
cmp eax, 0xc0000004
je 0x59762f
cmp eax, 0x80000005
je 0x59762f
cmp eax, 0xc0000023
je 0x59762f
cmp eax, ebx
jne 0x59763e
cmp dword [esp + 0x90], ebx
je 0x597237
mov dword [esp + 0x90], ebx
lea eax, [esp + 0x14]
push 4
push eax
call fcn.00577d48
mov eax, dword [ebp + 0x24]
add eax, 0xfffffffe
add esp, 8
cmp eax, 0x23
ja 0x597604
movzx ecx, byte [eax + 0x1003eaf0]
jmp dword [ecx*4 + 0x1003eadc]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc]
push eax
call fcn.0059ea18
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x59717d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], ebx
jmp 0x59717d
add edi, 0x100
mov dword [esp + 0x3c], edi
jmp 0x59717d
mov ecx, dword [0x100c3678]
mov eax, dword [esp + 0xfc]
mov edx, dword [ecx + 0x2b4]
add ecx, 0x2b4
push eax
mov eax, dword [edx + 0x24]
call eax
call eax
mov eax, dword [esp + 0xc8]
cmp eax, ebx
je 0x597679
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0xc8], ebx
mov eax, dword [esp + 0xd0]
cmp eax, ebx
je 0x597693
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0xd0], ebx
lea ecx, [esp + 0x114]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
call fcn.005b0a58
push 0x200
mov esi, 0xff
push ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], esi
call fcn.00577e78
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ebx
mov word [eax], bx
lea eax, [esp + 0x2c]
push 4
push eax
call fcn.00577d48
push 0x200
push ebx
mov dword [esp + 0xa4], esi
call fcn.00577e78
mov edi, eax
mov word [edi], bx
mov ecx, dword [0x100c3678]
add esp, 0x18
cmp dword [ecx + 0x98], ebx
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], ebx
jne 0x59776d
mov ecx, dword [ebp + 0x24]
lea eax, [ecx - 2]
cmp eax, 0x23
ja 0x599465
movzx edx, byte [eax + 0x1003eb28]
jmp dword [edx*4 + 0x1003eb14]
mov ecx, dword [esp + 0x18]
call fcn.0059ea98
mov eax, dword [esp + 0x84]
cmp eax, ebx
je 0x59778a
push eax
call fcn.00577f28
add esp, 4
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x59779e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x5977bb
push eax
call fcn.00577f28
add esp, 4
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x114]
call fcn.005b0b78
lea ecx, [esp + 0x78]
call fcn.00583de8
lea ecx, [esp + 0x78]
call fcn.00583de8
mov eax, dword [esp + 0x78]
cmp eax, ebx
je 0x5977fa
lea esp, [esp]
mov esi, dword [eax + 4]
push eax
call fcn.0055bc38
add esp, 4
cmp esi, ebx
mov eax, esi
jne 0x5977e8
mov eax, dword [esp + 0x68]
cmp eax, ebx
je 0x59780b
push eax
call fcn.00577f28
add esp, 4
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x597824
push eax
call fcn.00577f28
add esp, 4
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x94]
call fcn.00583d88
mov eax, dword [esp + 0x94]
cmp eax, ebx
je 0x59784d
mov esi, dword [eax + 4]
push eax
call fcn.0055bc38
add esp, 4
cmp esi, ebx
mov eax, esi
jne 0x59783b
mov ecx, dword [esp + 0xcc]
lea eax, [ebp + 8]
push eax
add ecx, 0xe8
call fcn.00585368
mov esi, eax
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x597879
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x18], ebx
mov ecx, dword [esi]
cmp ecx, ebx
mov dword [esp + 0x18], ecx
je 0x59788f
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 4]
call ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0x34]
mov dword [edx], ebx
call fcn.0059eb78
test eax, eax
je 0x599586
mov edi, dword [ebp + 0x38]
mov dword [edi], 0xc000000f
jmp 0x599639
cmp dword [esp + 0x38], ebx
je 0x599476
mov eax, dword [ebp + 0x34]
mov dword [eax], 1
jmp 0x5994b5
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebp + 0x10]
cmp eax, ebx
mov edx, dword [ebp + 0x34]
mov esi, dword [ebp + 0x14]
mov dword [ecx], 0xc000000d
mov dword [edx], ebx
je 0x5994a2
mov ecx, dword [ebp + 0x18]
push ebx
push ecx
push esi
push eax
call dword [0x100820a0]
push eax
call dword [0x100c3904]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0xcc]
push ebx
push ebx
push esi
push edx
call fcn.0058aef8
push edi
call fcn.00577f28
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, ebx
je 0x5994d2
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x5994ef
push eax
call fcn.00577f28
add esp, 4
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x114]
call fcn.005b0b78
lea ecx, [esp + 0x78]
call fcn.00583de8
lea ecx, [esp + 0x78]
call fcn.00583de8
mov eax, dword [esp + 0x78]
cmp eax, ebx
je 0x59952a
lea ecx, [ecx]
mov esi, dword [eax + 4]
push eax
call fcn.0055bc38
add esp, 4
cmp esi, ebx
mov eax, esi
jne 0x599518
mov eax, dword [esp + 0x68]
cmp eax, ebx
je 0x59953b
push eax
call fcn.00577f28
add esp, 4
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x599554
push eax
call fcn.00577f28
add esp, 4
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x94]
call fcn.00583d88
mov eax, dword [esp + 0x94]
cmp eax, ebx
je 0x59968a
mov esi, dword [eax + 4]
push eax
call fcn.0055bc38
add esp, 4
cmp esi, ebx
mov eax, esi
jne 0x59956f
jmp 0x59968a
cmp byte [ebp + 0x30], bl
je 0x599594
mov ecx, dword [esp + 0x18]
call fcn.0059ea98
mov ecx, dword [esp + 0x18]
call fcn.0059ebe8
test eax, eax
je 0x5995bd
mov eax, dword [esp + 0x150]
mov edi, dword [ebp + 0x38]
neg eax
sbb eax, eax
and eax, 0x40000009
add eax, 0x80000006
mov dword [edi], eax
jmp 0x599639
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x54]
push eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
call fcn.0059ec58
mov esi, dword [ebp + 0x20]
mov eax, dword [esp + 0x58]
cmp esi, eax
jae 0x5995fe
mov ecx, dword [esp + 0x18]
call fcn.0059e528
mov edi, dword [ebp + 0x38]
cmp esi, eax
sbb ecx, ecx
and ecx, 0x3fffffff
add ecx, 0x80000005
mov dword [edi], ecx
jmp 0x599628
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [ebp + 0x1c]
push edx
push eax
call fcn.00577d68
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x64]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x24]
add esp, 0xc
call fcn.0059eb08
mov edi, dword [ebp + 0x38]
mov dword [edi], ebx
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x599639
push eax
call fcn.00577f28
add esp, 4
mov eax, dword [esp + 0xd4]
cmp eax, ebx
mov esi, dword [0x1008209c]
je 0x59964d
push eax
call esi
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x599657
push eax
call esi
mov eax, dword [ebp + 0x10]
cmp eax, ebx
mov esi, dword [ebp + 0x14]
je 0x599675
mov ecx, dword [ebp + 0x18]
push ebx
push ecx
push esi
push eax
call dword [0x100820a0]
push eax
call dword [0x100c3904]
mov edx, dword [edi]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0xcc]
push ebx
push edx
push esi
push eax
call fcn.0058aef8
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x59969e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0xe4]
cmp eax, ebx
je 0x5996b2
push eax
call fcn.00577f28
add esp, 4
lea ecx, [esp + 0x148]
call fcn.005b0b78
mov eax, dword [esp + 0xd8]
cmp eax, ebx
je 0x5996d2
push eax
call fcn.00577f28
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x5996e6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x38]
cmp eax, ebx
je 0x5996fa
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x4c]
cmp eax, ebx
je 0x59970a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34