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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, eax
mov dword [esi + 0x3c], 2
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 4]
push edi
jne 0x5a1428
mov ecx, dword [ebx + 8]
cmp ecx, dword [esi + 8]
je 0x5a1433
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 6
jne 0x5a1428
mov eax, dword [esi]
cmp eax, 8
je 0x5a1444
cmp eax, 9
jne 0x5a1428
push 0
mov eax, ebx
lea edi, [esp + 0x54]
call fcn.004d3900
push 0
push esi
lea ecx, [esp + 0x48]
call fcn.004d39b0
push 0
lea edi, [esp + 0x64]
call fcn.004d3a60
push 0
lea edi, [esp + 0x74]
call fcn.004d3b00
mov ebx, dword [ebx + 8]
cmp ebx, 2
mov edi, dword [esp + 0x58]
mov dword [esp + 0x3c], ebx
jl 0x5a185e
mov edx, dword [esp + 0x5c]
jmp 0x5a1490
test edi, edi
je 0x5a1428
cmp edi, dword [esp + 0x50]
jb 0x5a1428
cmp edi, dword [esp + 0x54]
ja 0x5a1428
mov esi, dword [esp + 0x48]
test esi, esi
je 0x5a1428
cmp esi, dword [esp + 0x40]
jb 0x5a1428
cmp esi, dword [esp + 0x44]
ja 0x5a1428
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x5a1428
cmp ebx, dword [esp + 0x60]
jb 0x5a1428
cmp ebx, dword [esp + 0x64]
ja 0x5a1428
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x5a1428
cmp ecx, dword [esp + 0x70]
jb 0x5a1428
cmp ecx, dword [esp + 0x74]
ja 0x5a1428
mov dword [esp + 0x24], ebx
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x1c], esi
add esi, dword [esp + 0x4c]
mov eax, edi
mov dword [esp + 0x34], edi
add edi, edx
cmp ebx, 2
mov dword [esp + 0x58], edi
mov edx, edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], ecx
jl 0x5a172b
lea ecx, [eax + 3]
mov dword [esp + 0x28], ecx
mov ecx, ebx
shr ecx, 1
mov dword [esp + 0x38], ecx
neg ecx
lea ecx, [ebx + ecx*2]
mov dword [esp + 0x2c], ecx
lea esp, [esp]
mov cx, word [eax]
mov al, byte [eax + 2]
mov word [esp + 0x10], cx
movzx edi, byte [esp + 0x11]
mov esi, edi
imul edi, edi, 0x275
movzx ebx, cl
mov ecx, ebx
imul ebx, ebx, 0xbb
add edi, ebx
movzx eax, al
mov ebx, eax
shl ebx, 6
sub ebx, eax
lea ebx, [edi + ebx + 0x4200]
mov edi, dword [esp + 0x1c]
shr ebx, 0xa
mov byte [edi], bl
mov edi, dword [esp + 0x28]
mov bx, word [edi]
mov word [esp + 0x10], bx
mov bl, byte [edi + 2]
movzx edi, byte [esp + 0x10]
movzx ebx, bl
mov dword [esp + 0x18], edi
movzx edi, byte [esp + 0x11]
add esi, edi
imul edi, edi, 0x275
mov dword [esp + 0x14], eax
add eax, ebx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x18]
imul ebx, ebx, 0xbb
add edi, ebx
mov ebx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
shl ebx, 6
sub ebx, dword [esp + 0x14]
lea ebx, [edi + ebx + 0x4200]
mov edi, dword [esp + 0x1c]
shr ebx, 0xa
mov byte [edi + 1], bl
movzx edi, word [edx]
mov bl, byte [edx + 2]
mov word [esp + 0x10], di
movzx edi, byte [esp + 0x10]
movzx ebx, bl
mov dword [esp + 0x18], edi
movzx edi, byte [esp + 0x11]
mov dword [esp + 0x14], ebx
add eax, ebx
mov ebx, dword [esp + 0x18]
imul ebx, ebx, 0xbb
add esi, edi
imul edi, edi, 0x275
add edi, ebx
mov ebx, dword [esp + 0x14]
add ecx, dword [esp + 0x18]
shl ebx, 6
sub ebx, dword [esp + 0x14]
lea ebx, [edi + ebx + 0x4200]
mov edi, dword [esp + 0x20]
shr ebx, 0xa
mov byte [edi], bl
movzx edi, word [edx + 3]
mov bl, byte [edx + 5]
mov word [esp + 0x10], di
movzx edi, byte [esp + 0x10]
movzx ebx, bl
mov dword [esp + 0x18], edi
movzx edi, byte [esp + 0x11]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
add eax, ebx
mov ebx, dword [esp + 0x18]
add esi, edi
imul ebx, ebx, 0xbb
imul edi, edi, 0x275
add edi, ebx
mov ebx, dword [esp + 0x14]
shl ebx, 6
sub ebx, dword [esp + 0x14]
add dword [esp + 0x28], 6
lea ebx, [edi + ebx + 0x4200]
mov edi, dword [esp + 0x20]
shr ebx, 0xa
mov byte [edi + 1], bl
mov ebx, ecx
imul ecx, ecx, 0x1c2
mov edi, esi
imul ebx, ebx, 0xffffff99
imul esi, esi, 0x199
imul edi, edi, 0x15b
sub ebx, edi
mov edi, eax
imul eax, eax, 0xffffffd7
imul edi, edi, 0x1c2
sub eax, esi
lea eax, [eax + ecx + 0x7ff]
mov ecx, dword [esp + 0x30]
lea ebx, [ebx + edi + 0x7ff]
mov edi, dword [esp + 0x24]
shr eax, 0xc
shr ebx, 0xc
add al, 0x80
add bl, 0x80
mov byte [edi], bl
mov byte [ecx], al
mov eax, dword [esp + 0x34]
mov esi, 1
add dword [esp + 0x24], esi
mov edi, 2
add dword [esp + 0x1c], edi
add dword [esp + 0x20], edi
add ecx, esi
add eax, 6
add edx, 6
sub dword [esp + 0x38], esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
jne 0x5a1550
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x48]
test ebx, ebx
je 0x5a182a
mov si, word [eax]
mov al, byte [eax + 2]
mov word [esp + 0x10], si
movzx ebx, byte [esp + 0x10]
movzx edi, byte [esp + 0x11]
movzx esi, al
mov eax, ebx
imul ebx, ebx, 0xbb
mov dword [esp + 0x38], edi
imul edi, edi, 0x275
add edi, ebx
mov ebx, esi
shl ebx, 6
sub ebx, esi
lea ebx, [edi + ebx + 0x4200]
mov edi, dword [esp + 0x1c]
shr ebx, 0xa
mov byte [edi], bl
mov di, word [edx]
mov dl, byte [edx + 2]
movzx edx, dl
mov word [esp + 0x10], di
movzx edi, byte [esp + 0x10]
movzx ebx, byte [esp + 0x11]
add eax, edi
mov dword [esp + 0x14], esi
add esi, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
add edi, ebx
imul edx, edx, 0xbb
imul ebx, ebx, 0x275
add ebx, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], ebx
mov ebx, edx
shl ebx, 6
sub ebx, edx
mov edx, dword [esp + 0x38]
lea edx, [edx + ebx + 0x4200]
mov ebx, dword [esp + 0x20]
shr edx, 0xa
mov byte [ebx], dl
mov ebx, eax
imul eax, eax, 0x1c2
mov edx, edi
imul ebx, ebx, 0xffffff99
imul edi, edi, 0x199
imul edx, edx, 0x15b
sub ebx, edx
mov edx, esi
imul esi, esi, 0xffffffd7
imul edx, edx, 0x1c2
sub esi, edi
mov edi, dword [esp + 0x58]
lea edx, [ebx + edx + 0x3ff]
mov ebx, dword [esp + 0x24]
lea eax, [esi + eax + 0x3ff]
mov esi, dword [esp + 0x48]
shr edx, 0xb
add dl, 0x80
shr eax, 0xb
add al, 0x80
mov byte [ebx], dl
mov byte [ecx], al
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x5c]
add esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x7c]
add dword [esp + 0x68], ecx
add dword [esp + 0x78], eax
sub ebx, 2
add edi, edx
cmp ebx, 2
mov dword [esp + 0x48], esi
mov dword [esp + 0x3c], ebx
jge 0x5a1490
jmp 0x5a1862
mov esi, dword [esp + 0x48]
test ebx, ebx
je 0x5a1a96
test edi, edi
je 0x5a1428
cmp edi, dword [esp + 0x50]
jb 0x5a1428
cmp edi, dword [esp + 0x54]
ja 0x5a1428
test esi, esi
je 0x5a1428
cmp esi, dword [esp + 0x40]
jb 0x5a1428
cmp esi, dword [esp + 0x44]
ja 0x5a1428
mov eax, dword [esp + 0x68]
test eax, eax
je 0x5a1428
cmp eax, dword [esp + 0x60]
jb 0x5a1428
cmp eax, dword [esp + 0x64]
ja 0x5a1428
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5a1428
cmp eax, dword [esp + 0x70]
jb 0x5a1428
cmp eax, dword [esp + 0x74]
ja 0x5a1428
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 4]
cmp eax, 2
mov ebx, edi
mov dword [esp + 0x24], edx
jl 0x5a1a2f
mov ecx, eax
shr ecx, 1
mov dword [esp + 0x3c], ecx
neg ecx
lea edx, [eax + ecx*2]
mov dword [esp + 0x2c], edx
jmp 0x5a1920
mov ax, word [ebx]
mov word [esp + 0x10], ax
movzx edi, byte [esp + 0x10]
movzx ecx, byte [esp + 0x11]
mov al, byte [ebx + 2]
mov esi, ecx
imul ecx, ecx, 0x275
mov edx, edi
imul edi, edi, 0xbb
add ecx, edi
movzx eax, al
mov edi, eax
shl edi, 6
sub edi, eax
lea ecx, [ecx + edi + 0x4200]
mov edi, dword [esp + 0x20]
shr ecx, 0xa
mov byte [edi], cl
mov cx, word [ebx + 3]
mov word [esp + 0x10], cx
mov cl, byte [ebx + 5]
movzx edi, byte [esp + 0x10]
movzx ecx, cl
mov dword [esp + 0x18], edi
movzx edi, byte [esp + 0x11]
add edx, dword [esp + 0x18]
add esi, edi
imul edi, edi, 0x275
mov dword [esp + 0x14], eax
add eax, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0xbb
add edi, ecx
mov ecx, dword [esp + 0x14]
shl ecx, 6
sub ecx, dword [esp + 0x14]
add ebx, 6
lea ecx, [edi + ecx + 0x4200]
mov edi, dword [esp + 0x20]
shr ecx, 0xa
mov byte [edi + 1], cl
mov edi, edx
imul edx, edx, 0x1c2
mov ecx, esi
imul edi, edi, 0xffffff99
imul esi, esi, 0x199
imul ecx, ecx, 0x15b
add dword [esp + 0x20], 2
sub edi, ecx
mov ecx, eax
imul eax, eax, 0xffffffd7
imul ecx, ecx, 0x1c2
lea ecx, [edi + ecx + 0x3ff]
mov edi, dword [esp + 0x24]
sub eax, esi
lea edx, [eax + edx + 0x3ff]
mov eax, dword [esp + 0x28]
shr ecx, 0xb
add cl, 0x80
shr edx, 0xb
mov byte [edi], cl
add dl, 0x80
mov ecx, 1
add dword [esp + 0x24], ecx
mov byte [eax], dl
add eax, ecx
sub dword [esp + 0x3c], ecx
mov dword [esp + 0x28], eax
jne 0x5a1920
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x5a1a96
mov ax, word [ebx]
mov word [esp + 0x10], ax
mov al, byte [ebx + 2]
movzx edi, byte [esp + 0x10]
movzx ebx, byte [esp + 0x11]
mov ecx, ebx
imul ecx, ecx, 0x275
mov edx, edi
imul edx, edx, 0xbb
movzx esi, al
add ecx, edx
mov edx, dword [esp + 0x20]
mov eax, esi
shl eax, 6
sub eax, esi
lea ecx, [ecx + eax + 0x4200]
shr ecx, 0xa
mov byte [edx], cl
push ebx
push edi
xor ecx, ecx
mov edx, esi
call fcn.004e1640
mov ecx, dword [esp + 0x24]
mov byte [ecx], al
push ebx
push edi
xor ecx, ecx
mov eax, esi
call fcn.004e1680
mov edx, dword [esp + 0x28]
mov byte [edx], al
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 4