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

Disassembly:
sub esp, 0x48
push ebx
push ebp
mov ebp, dword [esp + 0x54]
push esi
push edi
mov edi, edx
test edi, edi
mov ebx, eax
mov esi, ecx
je 0x5121a4
test esi, esi
je 0x5121a4
test ebp, ebp
je 0x5121a4
movzx eax, word [edi + 8]
push 0x58
push 0
push esi
mov dword [esp + 0x20], eax
call fcn.005d9e90
push 0x40
lea ecx, [edi + 0x884]
push 0
push ecx
call fcn.005d9e90
add esp, 0x18
cmp ebx, 0x80
jb 0x511e6b
movzx eax, byte [ebp]
sub eax, 0x54
jne 0x511e47
movzx eax, byte [ebp + 1]
sub eax, 0x41
lea ecx, [ebp + 1]
jne 0x511e47
movzx eax, byte [ecx + 1]
add ecx, 1
sub eax, 0x47
je 0x511e55
test eax, eax
mov ecx, 1
jg 0x511e57
or ecx, 0xffffffff
jmp 0x511e57
xor ecx, ecx
test ecx, ecx
jne 0x511e6b
pop edi
mov dword [esi], 0x80
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x48
ret
push ebx
lea edx, [esp + 0x38]
push ebp
push edx
call fcn.00546980
add esp, 0xc
cmp byte [edi], 0
je 0x511ea6
mov al, byte [edi + 0x8ce]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x3a], al
call fcn.00549710
add esp, 8
test al, al
mov byte [esi + 9], al
ja 0x51213e
mov eax, dword [edi + 0x140]
push eax
lea ecx, [edi + 0x66d]
push ecx
lea edx, [esp + 0x3c]
push edx
push esi
push edi
call fcn.0054a230
mov bl, byte [edi + 0x14]
add esp, 0x14
cmp byte [esi + 9], 0
ja 0x51213e
test bl, bl
je 0x51213a
cmp bl, 0x40
ja 0x51213a
lea eax, [esp + 0x34]
push eax
call fcn.00546a80
add eax, 7
shr eax, 3
add esp, 4
cmp byte [esp + 0x49], 0
mov dword [esi], eax
je 0x511f06
mov byte [esi + 9], 0xe
jmp 0x51213e
lea ecx, [esp + 0x34]
push ecx
call fcn.00546a50
add esp, 4
cmp byte [edi], 0
jne 0x511f3d
cmp byte [edi + 1], 0
jne 0x511f3d
cmp byte [edi + 4], 0
jne 0x511f27
mov byte [edi + 4], bl
cmp bl, 8
jne 0x511f32
mov byte [edi + 4], 7
jmp 0x511f56
cmp bl, 7
jne 0x511f3d
mov byte [edi + 4], 0
jmp 0x511f56
cmp bl, 5
je 0x511f47
cmp bl, 6
jne 0x511f56
cmp byte [edi + 0x8cd], 0
je 0x511f56
mov byte [edi + 0x10], 1
mov bl, 2
cmp bl, 1
mov byte [esp + 0x18], bl
mov byte [edi + 0x11], 0
jne 0x511f6c
mov byte [edi + 0x11], bl
mov bl, 2
mov byte [esp + 0x18], bl
push edi
call fcn.005119a0
movzx ebp, word [esp + 0x18]
movzx eax, bl
imul eax, ebp
mov dword [esi + 4], eax
mov byte [esi + 8], bl
movzx edx, byte [edi + 2]
push edx
call fcn.00545a90
mov dword [esi + 0xc], eax
mov al, byte [edi + 3]
add esp, 8
mov byte [esi + 0x11], al
mov byte [esi + 0x10], 0
mov byte [esi + 0x12], 0
cmp byte [edi + 1], 0
je 0x511fab
mov byte [esi + 0x12], 1
cmp byte [edi], 0
je 0x511fb4
mov byte [esi + 0x12], 2
mov cl, byte [edi + 0x468]
mov byte [esi + 0x57], cl
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x511fc9
cmp byte [edi + 0x76], bl
je 0x512036
cmp byte [edi + 0x344], 1
movzx edx, byte [edi + 0x8cc]
mov al, byte [edx + 0x6503df]
mov byte [esp + 0x13], al
jne 0x511fec
cmp byte [edi + 0x346], 0
je 0x511ff5
cmp byte [edi + 0x345], 1
jne 0x511ffb
add al, al
mov byte [esp + 0x13], al
mov edx, dword [esp + 0x64]
test edx, edx
jne 0x512042
test ecx, ecx
je 0x512014
push ecx
call fcn.00545b60
mov al, byte [esp + 0x17]
add esp, 4
movzx ecx, al
movzx eax, bl
imul ecx, eax
imul ecx, ebp
push ecx
mov dword [edi + 0x78], 0
call fcn.00545b50
add esp, 4
mov dword [edi + 0x78], eax
mov byte [edi + 0x76], bl
cmp dword [esp + 0x64], 0
jne 0x512060
mov ecx, dword [edi + 0x78]
jmp 0x512066
movzx ecx, al
movzx eax, bl
imul ecx, eax
imul ecx, ebp
cmp edx, ecx
jae 0x512033
pop edi
mov byte [esi + 9], 0x1b
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x48
ret
mov edx, dword [esp + 0x60]
mov ecx, dword [edx]
cmp byte [edi + 0x344], 1
je 0x512078
cmp byte [edi + 0x345], 1
jne 0x5120ee
cmp byte [edi + 0x346], 0
jne 0x51209f
mov eax, dword [esp + 0x14]
lea edx, [eax + eax]
movzx eax, dx
mov edx, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xc]
add edx, edx
add eax, eax
mov dword [esi + 4], edx
mov dword [esi + 0xc], eax
xor al, al
cmp byte [edi + 0x15], al
jbe 0x5120c4
jmp 0x5120b0
movzx edx, al
cmp dword [edi + edx*4 + 0x378], 0
je 0x5120d7
add al, 1
cmp al, byte [edi + 0x15]
jb 0x5120b0
cmp byte [edi + 0x344], 1
jne 0x5120dd
mov byte [esi + 0x11], 5
mov byte [esi + 0x10], 1
jmp 0x5120e1
mov byte [esi + 9], 0x19
jmp 0x51213e
mov byte [esi + 0x10], 3
cmp byte [edi + 0x346], 0
je 0x5120ee
mov byte [esi + 0x10], 2
movzx eax, byte [edi + 0x8cc]
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
push ecx
lea ecx, [edi + 0x144]
push ecx
push edi
call fcn.0054c6a0
add dword [edi + 0xc], 1
mov ecx, dword [edi + 0xc]
add esp, 0x18
cmp byte [edi + 3], 0x17
mov byte [edi + 0xa], 0
je 0x512127
cmp ecx, 1
jmp 0x512129
test ecx, ecx
ja 0x5121a6
pop edi
mov dword [esi + 4], 0
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov byte [esi + 9], 0xc
lea esi, [edi + 0x244]
mov ebx, 0x40
lea esp, [esp]
mov eax, dword [esi]
test eax, eax
je 0x51216a
movzx edx, word [edi + 8]
add edx, edx
add edx, edx
push edx
push 0
push eax
call fcn.005d9e90
add esp, 0xc
add esi, 4
sub ebx, 1
jne 0x512150
lea esi, [edi + 0x378]
lea edi, [ebx + 0x30]
jmp 0x512180
mov eax, dword [esi]
test eax, eax
je 0x51218f
push eax
call fcn.0054ac10
add esp, 4
add esi, 4
sub edi, 1
jne 0x512180
lea eax, [esp + 0x34]
push eax
call fcn.00546a50
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret