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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
movzx eax, byte [edx + 0x138]
mov esi, ecx
mov ecx, dword [ebp + 8]
mov edi, edx
cmp al, 0x4c
jne 0x5966a2
mov eax, dword [edi]
or eax, dword [edi + 4]
je 0x5963bc
mov ecx, dword [edi + 0xe0]
lea eax, [edi + 0xa8]
test ecx, ecx
mov dword [esp + 0x6c], ecx
je 0x5963d2
mov ecx, dword [edi + 0xe4]
mov dword [esp + 0x60], ecx
jmp 0x5963d2
mov byte [edi + 0x138], 0x4b
mov dword [edi + 0x13c], 0
jmp 0x5966a6
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc0]
mov ebx, dword [edi + 0xc4]
mov dword [esp + 0x68], ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x64], ecx
mov ecx, dword [edi + 0xf0]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 8]
lea edx, [esp + 0x70]
mov eax, dword [eax]
add ecx, 8
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x80], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x34], eax
call fcn.0058e750
movzx ecx, byte [esp + 0x18]
movzx eax, byte [esp + 0x19]
cmp cl, 0x4b
mov dword [esp], ecx
jne 0x596480
test al, al
je 0x596511
cmp dword [esp + 0x80], 0
je 0x5967c5
cmp word [edi + 0xca], 5
lea edx, [esp + 0x80]
lea ebx, [esp + 0x40]
jae 0x596533
lea ecx, [esp + 0x38]
push 0x2130
jmp 0x596539
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], eax
movzx edx, word [esp + 0x1e]
mov eax, dword [esp + 0x1a]
xor ebx, ebx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov ecx, 1
shld edx, eax, 0x10
or ecx, ebx
je 0x596618
movzx ecx, byte [esp + 4]
shl eax, 8
or ecx, eax
cmp byte [esp], 0x4b
jne 0x59665f
mov ecx, dword [esp + 0x34]
lock inc dword [ecx]
jle 0x5967c3
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x60]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x6c]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], edx
mov edx, dword [esp + 8]
mov dword [esi + 0x24], edx
mov dword [esi + 0x28], ecx
mov ecx, dword [ebp + 8]
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], ecx
mov dword [esi], 0
jmp 0x59673c
mov al, 0x2e
mov dword [esp + 4], 0
xor edx, edx
xor ecx, ecx
mov dword [esp], eax
xor eax, eax
xor ebx, ebx
shld edx, eax, 0x10
or ecx, ebx
jne 0x5964b0
jmp 0x596618
lea ecx, [esp + 0x38]
push 0x76
call fcn.0058f560
add esp, 4
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, eax
xor edx, 0x2f
or edx, ecx
jne 0x596597
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp], ecx
mov edx, eax
shld eax, ecx, 0x10
mov ecx, 1
shr edx, 0x10
mov dword [esp + 8], ebx
mov ebx, dword [esp]
mov bl, bh
mov dword [esp + 4], ebx
xor ebx, ebx
shld edx, eax, 0x10
or ecx, ebx
jne 0x5964b0
jmp 0x596618
mov edx, eax
xor edx, 0x2e
or edx, ecx
jne 0x5965b3
mov al, 0x2e
mov dword [esp + 4], 0
xor edx, edx
mov dword [esp], eax
xor eax, eax
jmp 0x5965f8
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
lea eax, [esp + 0x20]
lea ecx, [esp + 0x50]
lea edx, [esp + 0x18]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
call fcn.0058dcd0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, eax
shld eax, ecx, 0x10
mov dword [esp], ecx
mov cl, ch
shr edx, 0x10
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xc], ecx
xor ecx, ecx
xor ebx, ebx
shld edx, eax, 0x10
or ecx, ebx
jne 0x5964b0
movzx ecx, byte [esp + 4]
shl eax, 0x10
mov dword [esp + 0x1c], edx
shl ecx, 8
or ecx, eax
movzx eax, byte [esp]
or eax, ecx
mov dword [esp + 0x18], eax
xor eax, 0x2e
or eax, edx
mov eax, dword [esp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov al, 0x4b
mov dword [esp], eax
jne 0x596744
xor edx, edx
cmp byte [esp], 0x4b
je 0x5964c4
movzx eax, byte [edi + 0x138]
cmp al, 0x4c
jne 0x59669f
mov ebx, dword [esp]
mov eax, dword [esp + 8]
mov byte [edi + 0x138], bl
mov word [edi + 0x139], cx
shr ecx, 0x10
mov byte [edi + 0x13b], cl
mov dword [edi + 0x13c], edx
mov dword [edi + 0x140], eax
mov eax, dword [esp + 0xc]
mov dword [edi + 0x144], eax
mov eax, ebx
mov ecx, dword [ebp + 8]
cmp al, 0x4b
jne 0x5966bd
mov ebx, dword [edi + 0x13c]
test ebx, ebx
je 0x5966ff
mov ecx, dword [ebx]
add ebx, 8
mov dl, 2
mov al, 0x4b
mov edi, ebx
jmp 0x596705
movzx ecx, byte [edi + 0x13b]
mov byte [esp + 0x16], cl
movzx ecx, word [edi + 0x139]
mov word [esp + 0x14], cx
mov ah, byte [edi + 0x143]
mov ecx, dword [edi + 0x13c]
movzx edx, byte [edi + 0x140]
mov byte [esp + 0x12], ah
movzx ebx, word [edi + 0x141]
mov word [esp + 0x10], bx
mov edi, dword [edi + 0x144]
jmp 0x596708
mov ecx, dword [ecx]
mov al, 0x4b
xor edx, edx
add ecx, 8
mov byte [esi + 8], al
movzx eax, word [esp + 0x14]
movzx ebx, byte [esp + 0x16]
mov word [esi + 9], ax
mov byte [esi + 0xb], bl
mov dword [esi + 0xc], ecx
mov byte [esi + 0x10], dl
movzx edx, word [esp + 0x10]
movzx ecx, byte [esp + 0x12]
mov word [esi + 0x11], dx
mov byte [esi + 0x13], cl
mov dword [esi + 0x14], edi
mov dword [esi], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x34]
movzx ebx, byte [edi + 0xc9]
lea ecx, [esp + 0x70]
lea edx, [eax + 8]
lea eax, [esp + 0x18]
push eax
push dword [edi + 0xf4]
push ebx
call fcn.00591cf0
add esp, 0xc
movzx eax, byte [esp + 0x70]
cmp al, 0x4b
jne 0x59678e
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov dword [esp + 8], eax
cmp byte [esp], 0x4b
je 0x5964c4
jmp 0x59665f
movzx edx, byte [esp + 0x73]
mov ebx, dword [esp + 0x78]
movzx ecx, word [esp + 0x71]
mov dword [esp], eax
shl edx, 0x10
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x7c]
or ecx, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0xc], ebx
cmp byte [esp], 0x4b
jne 0x59665f
jmp 0x5964c4
ud2
push 0x6e1f80
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_srccollections_btree_navigate.rs
call fcn.004faaf0
nop word cs:[eax + eax]