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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
push ebx
mov ebx, ecx
push ebp
push esi
push edi
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], edx
cmp dword [edx + 0x58], 0
je 0x5114ad
call fcn.00510d60
jmp 0x5118bb
mov edi, dword [ebx]
mov ebp, edx
mov dword [esp + 0x14], edi
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 0x20]
cmp eax, str.nth_value
je 0x5118e8
cmp eax, str.first_value
je 0x5118e8
cmp eax, str.lead
je 0x5114e7
cmp eax, 0x5982b0
jne 0x5118ac
mov eax, dword [ebp + 0x48]
mov eax, dword [eax + 0x14]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x3c]
dec dword [edi + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x28], eax
mov al, byte [edi + 0x13]
mov dword [esp + 0x30], ecx
test al, al
jne 0x511513
inc dword [edi + 0x2c]
mov ebx, dword [edi + 0x2c]
jmp 0x511522
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov ebx, dword [edi + eax*4 + 0x98]
mov eax, dword [edx + 0x30]
cmp ecx, 3
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x20], eax
jge 0x511583
cmp dword [esi + 0x78], ecx
jg 0x511556
push 0
push eax
push 0
mov edx, 0x4a
mov ecx, esi
call fcn.00497f80
add esp, 0xc
jmp 0x5115d8
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x4a
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
jmp 0x5115d0
mov edx, dword [ebp + 0x50]
add edx, 2
cmp dword [esi + 0x78], ecx
jg 0x5115a5
push eax
push edx
push dword [esp + 0x24]
mov edx, 0x5d
mov ecx, esi
call fcn.00497f80
add esp, 0xc
jmp 0x5115d8
mov edi, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5115f8
push 0
push ebx
push dword [esp + 0x24]
mov edx, 0x86
mov ecx, esi
call fcn.00497f80
add esp, 0xc
jmp 0x511627
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x86
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x30], 2
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x20]
jge 0x5116a9
xor edx, edx
cmp ecx, str.lead
mov ecx, dword [esi + 0x74]
sete dl
lea edx, [edx*2 - 1]
cmp dword [esi + 0x78], ecx
jg 0x51166e
push 0
push edx
push ebx
mov edx, 0x55
mov ecx, esi
call fcn.00497f80
lea eax, [ebp + 0x50]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x5117b8
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x55
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [ebp + 0x50]
mov dword [esp + 0x20], eax
jmp 0x5117b8
xor eax, eax
cmp ecx, str.lead
setne al
add eax, 0x6a
mov dword [esp + 0x2c], eax
mov al, byte [edi + 0x13]
test al, al
jne 0x5116ca
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
jmp 0x5116d9
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x98]
mov eax, dword [ebp + 0x50]
mov ecx, dword [esi + 0x74]
inc eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], eax
cmp dword [esi + 0x78], ecx
jg 0x511708
push edx
push eax
push dword [esp + 0x24]
mov edx, 0x5d
mov ecx, esi
call fcn.00497f80
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x51173b
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x51175a
push ebx
push ebx
push edx
mov edx, dword [esp + 0x38]
mov ecx, esi
call fcn.00497f80
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x511791
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea ecx, [ebp + 0x50]
mov dword [esp + 0x20], ecx
test edx, edx
je 0x5117b8
mov al, byte [edi + 0x13]
mov dword [esp + 0x20], ecx
cmp al, 8
jae 0x5117b8
movzx eax, al
mov dword [esp + 0x20], ecx
mov dword [edi + eax*4 + 0x98], edx
inc byte [edi + 0x13]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5117db
mov edx, dword [esp + 0x28]
mov ecx, esi
push ebx
push edx
push dword [esp + 0x2c]
mov edx, 0x20
call fcn.00497f80
add esp, 0xc
jmp 0x51180a
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x74]
mov edx, dword [ebp + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
cmp dword [esi + 0x78], ecx
jg 0x511836
push edx
push eax
push dword [esp + 0x2c]
mov edx, 0x5d
mov ecx, esi
call fcn.00497f80
add esp, 0xc
jmp 0x511869
mov edi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x28]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x511887
push edx
mov edx, esi
call fcn.004987a0
add esp, 4
jmp 0x511890
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x18]
test ebx, ebx
je 0x5118ac
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x5118ac
movzx eax, al
mov dword [edi + eax*4 + 0x98], ebx
inc byte [edi + 0x13]
mov ebp, dword [ebp + 0x24]
test ebp, ebp
jne 0x5114b5
mov ebx, dword [esp + 0x34]
mov ecx, dword [esi + 0x74]
mov edx, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
cmp dword [esi + 0x78], ecx
jg 0x511b58
push 0
push edx
push edi
mov edx, 0xc
mov ecx, esi
call fcn.00497f80
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x3c]
dec dword [edi + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x28], eax
mov al, byte [edi + 0x13]
test al, al
jne 0x511908
inc dword [edi + 0x2c]
mov ebx, dword [edi + 0x2c]
jmp 0x511917
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov ebx, dword [edi + eax*4 + 0x98]
mov ecx, dword [esi + 0x74]
mov edx, dword [ebp + 0x38]
cmp dword [esi + 0x78], ecx
jg 0x511938
push 0
push edx
push 0
mov edx, 0x4a
mov ecx, esi
call fcn.00497f80
add esp, 0xc
jmp 0x51196b
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x4a
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0x74]
cmp dword [eax + 0x20], 0x598890
jne 0x5119f3
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x50]
inc edx
mov eax, dword [eax + 0x30]
mov dword [esp + 0x30], eax
cmp dword [esi + 0x78], ecx
jg 0x5119b4
push ebx
push edx
push eax
mov edx, 0x5d
mov ecx, esi
call fcn.00497f80
add esp, 0xc
mov edx, ebx
mov ecx, edi
push 2
call fcn.0050fd10
add esp, 4
jmp 0x511a3d
mov edi, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
push 2
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], edx
mov edx, ebx
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, edi
call fcn.0050fd10
add esp, 4
jmp 0x511a3d
cmp dword [esi + 0x78], ecx
jg 0x511a0e
push 0
push ebx
push 1
mov edx, 0x47
mov ecx, esi
call fcn.00497f80
add esp, 0xc
jmp 0x511a3d
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
mov edx, dword [ebp + 0x40]
cmp dword [esi + 0x78], ecx
jg 0x511a5c
push ebx
push edx
push ebx
mov edx, 0x6a
mov ecx, esi
call fcn.00497f80
add esp, 0xc
jmp 0x511a87
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x6a
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebp + 0x40]
mov ecx, dword [esi + 0x74]
inc edx
cmp dword [esi + 0x78], ecx
jg 0x511aaa
push ebx
push dword [esp + 0x2c]
mov ecx, esi
push edx
mov edx, 0x36
call fcn.00497f80
add esp, 0xc
jmp 0x511ad9
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x36
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x511af9
push ebx
push 0
push dword [esp + 0x2c]
mov edx, 0x20
mov ecx, esi
call fcn.00497f80
add esp, 0xc
jmp 0x511b28
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
mov eax, dword [ebp + 0x50]
mov edx, dword [ebp + 0x38]
mov dword [esp + 0x30], eax
cmp dword [esi + 0x78], ecx
jg 0x511836
push edx
push eax
push dword [esp + 0x2c]
mov edx, 0x5d
mov ecx, esi
call fcn.00497f80
add esp, 0xc
jmp 0x511869
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edi
pop edi
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret