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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa0
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
call 0x521d6d
pop eax
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [ecx + 8], eax
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x54], eax
mov dword [ecx + 0x68], eax
mov esi, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
cmp esi, ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x6c], ecx
ja 0x521dde
mov eax, dword [edi + 0xc]
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x5258bd
mov eax, dword [edi + 8]
mov ebx, edx
mov edx, dword [edi]
mov ecx, dword [esp + 0x44]
cmp bl, 2
setne byte [esp + 0x4f]
test bl, 1
sete byte [esp + 0x18]
mov dword [esp + 8], eax
push dword [edi + 4]
call fcn.00525a40
add esp, 4
cmp al, 2
mov dword [esp + 0x84], edx
mov byte [esp + 0x5d], al
jne 0x521de9
add esp, 0xa0
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, byte [esp + 0x18]
mov ecx, dword [esp + 0xbc]
and byte [esp + 0x4f], al
mov eax, dword [esp + 0xb4]
cmp bl, 2
lea edx, [eax + 0x28]
lea eax, [eax + 0x58]
mov dword [esp + 0x68], eax
mov al, byte [edi + 0x18]
mov dword [esp + 0x64], edx
sete dl
or dl, bl
mov byte [esp + 0x5f], dl
mov edx, dword [esp + 0x78]
mov byte [esp + 0x5e], al
mov eax, dword [ecx + 8]
mov dword [esp + 0x7c], edx
cmp edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x18], edx
adc dword [esp + 0x7c], 0
test eax, eax
sete al
or al, byte [esp + 0x4f]
cmp dword [ecx + 0x24], 0
mov ecx, edx
jne 0x521e65
cmp edx, dword [esp + 0x78]
seta cl
test al, al
je 0x521dde
and cl, byte [esp + 0x5d]
jne 0x521dde
mov ecx, dword [esp + 0xb4]
test al, al
je 0x522bde
mov edx, dword [ecx + 8]
cmp edx, dword [ecx + 4]
jne 0x521e8b
call fcn.00489cfe
mov ecx, dword [esp + 0xb4]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
mov edi, dword [esp + 0x84]
mov esi, ecx
lea ecx, [edx + edx*2]
mov dword [eax + ecx*4], 0
mov dword [eax + ecx*4 + 4], edi
mov eax, dword [esi + 8]
inc eax
mov dword [esi + 8], eax
je 0x522bde
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edi, 0
sub ecx, edx
lea ebx, [edx - 1]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 8]
mov dword [esp], ebx
add ecx, edx
sub edx, 4
cmovb edx, edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], edx
dec eax
mov dword [esi + 8], eax
lea edx, [eax + eax*2]
mov ecx, dword [esi]
mov eax, dword [ecx + edx*4]
mov edi, dword [ecx + edx*4 + 4]
test eax, eax
jne 0x522bd5
mov edx, dword [esi + 0x20]
mov dword [esp + 0x48], edi
cmp edx, edi
jbe 0x525735
mov ebx, dword [esi + 0x24]
mov eax, esi
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + edi*4]
cmp ecx, ebx
jae 0x521f2f
mov ebp, eax
mov eax, dword [eax + 0x14]
cmp eax, ecx
jbe 0x52572c
mov ebp, dword [ebp + 0xc]
cmp dword [ebp + ecx*4], edi
jne 0x521f32
jmp 0x522bc1
mov eax, dword [eax + 0x14]
cmp ebx, eax
mov dword [esp + 0x58], ebx
jae 0x5257c4
mov ebp, dword [esp + 0xb4]
mov eax, dword [ebp + 0xc]
mov dword [eax + ebx*4], edi
mov ecx, dword [esp + 0x48]
cmp edx, ecx
jbe 0x525721
mov eax, dword [esp + 0x44]
mov dword [esi + ecx*4], ebx
inc ebx
mov dword [ebp + 0x24], ebx
mov edx, dword [eax + 0x144]
cmp edx, edi
jbe 0x525739
mov eax, dword [eax + 0x13c]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
mov ecx, dword [ecx*4 + 0x52590c]
add ecx, dword [esp + 0x50]
jmp ecx
mov esi, dword [esp + 0xb4]
mov eax, dword [esi + 8]
test eax, eax
jne 0x521ede
jmp 0x522bde
cmp eax, 2
jne 0x52585d
mov edi, dword [esp + 0x44]
cmp byte [edi + 0x15a], 0
je 0x522bfe
cmp byte [edi + 0x15b], 0
setne al
mov dword [esp + 0x80], eax
jmp 0x522c09
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0x18]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x24]
cmp edx, ecx
jb 0x5258a1
test ecx, ecx
je 0x5256ba
mov ebp, dword [eax + 0xc]
lea ebx, [esi + 1]
mov eax, 0
mov edx, ebx
sub edx, 4
cmovb edx, eax
mov eax, dword [edi + 0x144]
mov dword [esp + 0x10], edx
mov edx, dword [ebp]
cmp eax, edx
jbe 0x525744
lea eax, [ebp + ecx*4]
mov dword [esp], ebx
mov dword [esp + 0x40], eax
lea eax, [esi + 2]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x1c]
sub eax, ebx
mov ebx, ebp
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 8]
lea eax, [eax + esi + 1]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x13c]
lea ecx, [edx + edx*4]
mov ebp, edi
add ebx, 4
lea edi, [eax + ecx*4]
mov eax, dword [edi]
mov eax, dword [eax*4 + 0x525950]
add eax, dword [esp + 0x50]
jmp eax
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 4]
je 0x521dde
cmp byte [esp + 0x5e], 0
jne 0x521dde
mov edi, dword [esp + 0xb4]
mov ecx, 0xffffffd0
mov edx, dword [edi + ecx + 0x3c]
mov esi, dword [edi + ecx + 0x6c]
mov dword [edi + ecx + 0x3c], esi
mov dword [edi + ecx + 0x6c], edx
add ecx, 4
jne 0x5256e4
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x54], 0
cmp ecx, dword [esp + 0x6c]
jae 0x521dde
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x6c]
jbe 0x521e2b
jmp 0x521dde
push 0x76b254
jmp 0x525763
mov edx, eax
push 0x76b274
jmp 0x525763
mov ecx, edi
jmp 0x52575e
mov ecx, edi
jmp 0x525748
mov ecx, edx
mov edx, eax
push 0x769d48
jmp 0x525763
push 0x76b264
call fcn.006521f0
add esp, 4
ud2
push 0x76a0b0
jmp 0x525763
lea ecx, [esp + 0x74]
lea esi, [esp + 0x58]
mov edx, 0x42c77c
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov dword [ecx], eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x2c], edx
mov esi, 3
lea edx, [esp + 0x20]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0x34], fcn.004ef497
mov dword [ecx], 0x76b22c
mov dword [ecx + 4], esi
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov edx, 0x76b244
mov dword [ecx + 0xc], esi
call fcn.00652150
ud2
mov ecx, edi
xor edx, edx
jmp 0x52577b
push 0x76b284
jmp 0x5258f7
lea ecx, [esp + 0x20]
mov edx, 0x76a090
xor eax, eax
mov dword [ecx], str.byte_slice_lengths_must_be_less_than_usize_MAX
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], 0x7f59e0
mov dword [ecx + 0xc], eax
jmp 0x52581e
call fcn.00652260
jmp 0x525768