Function at 0x50b370
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 0x50b39d
call fcn.0050ac50
jmp 0x50b7ab
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 0x50b7d8
cmp eax, str.first_value
je 0x50b7d8
cmp eax, str.lead
je 0x50b3d7
cmp eax, 0x592320
jne 0x50b79c
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 0x50b403
inc dword [edi + 0x2c]
mov ebx, dword [edi + 0x2c]
jmp 0x50b412
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 0x50b473
cmp dword [esi + 0x78], ecx
jg 0x50b446
push 0
push eax
push 0
mov edx, 0x4a
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x50b4c8
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 0x50b4c0
mov edx, dword [ebp + 0x50]
add edx, 2
cmp dword [esi + 0x78], ecx
jg 0x50b495
push eax
push edx
push dword [esp + 0x24]
mov edx, 0x5d
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x50b4c8
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 0x50b4e8
push 0
push ebx
push dword [esp + 0x24]
mov edx, 0x86
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x50b517
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 0x50b599
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 0x50b55e
push 0
push edx
push ebx
mov edx, 0x55
mov ecx, esi
call fcn.00491e40
lea eax, [ebp + 0x50]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x50b6a8
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 0x50b6a8
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 0x50b5ba
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
jmp 0x50b5c9
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 0x50b5f8
push edx
push eax
push dword [esp + 0x24]
mov edx, 0x5d
mov ecx, esi
call fcn.00491e40
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x50b62b
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 0x50b64a
push ebx
push ebx
push edx
mov edx, dword [esp + 0x38]
mov ecx, esi
call fcn.00491e40
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x50b681
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 0x50b6a8
mov al, byte [edi + 0x13]
mov dword [esp + 0x20], ecx
cmp al, 8
jae 0x50b6a8
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 0x50b6cb
mov edx, dword [esp + 0x28]
mov ecx, esi
push ebx
push edx
push dword [esp + 0x2c]
mov edx, 0x20
call fcn.00491e40
add esp, 0xc
jmp 0x50b6fa
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 0x50b726
push edx
push eax
push dword [esp + 0x2c]
mov edx, 0x5d
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x50b759
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 0x50b777
push edx
mov edx, esi
call fcn.00492660
add esp, 4
jmp 0x50b780
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 0x50b79c
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x50b79c
movzx eax, al
mov dword [edi + eax*4 + 0x98], ebx
inc byte [edi + 0x13]
mov ebp, dword [ebp + 0x24]
test ebp, ebp
jne 0x50b3a5
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 0x50ba48
push 0
push edx
push edi
mov edx, 0xc
mov ecx, esi
call fcn.00491e40
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 0x50b7f8
inc dword [edi + 0x2c]
mov ebx, dword [edi + 0x2c]
jmp 0x50b807
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 0x50b828
push 0
push edx
push 0
mov edx, 0x4a
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x50b85b
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], 0x592900
jne 0x50b8e3
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 0x50b8a4
push ebx
push edx
push eax
mov edx, 0x5d
mov ecx, esi
call fcn.00491e40
add esp, 0xc
mov edx, ebx
mov ecx, edi
push 2
call fcn.00509c00
add esp, 4
jmp 0x50b92d
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.00509c00
add esp, 4
jmp 0x50b92d
cmp dword [esi + 0x78], ecx
jg 0x50b8fe
push 0
push ebx
push 1
mov edx, 0x47
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x50b92d
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 0x50b94c
push ebx
push edx
push ebx
mov edx, 0x6a
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x50b977
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 0x50b99a
push ebx
push dword [esp + 0x2c]
mov ecx, esi
push edx
mov edx, 0x36
call fcn.00491e40
add esp, 0xc
jmp 0x50b9c9
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 0x50b9e9
push ebx
push 0
push dword [esp + 0x2c]
mov edx, 0x20
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x50ba18
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 0x50b726
push edx
push eax
push dword [esp + 0x2c]
mov edx, 0x5d
mov ecx, esi
call fcn.00491e40
add esp, 0xc
jmp 0x50b759
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