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

Disassembly:
sub esp, 0xc4
mov eax, dword [0x620368]
xor eax, esp
push ebx
lea edx, [esp + 8]
push edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xd0]
xor ebx, ebx
push ebx
mov dword [esp + 0x14], eax
mov eax, dword [0x629430]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x40]
cmp eax, ebx
jge 0x50afa0
push eax
push 0x5d01c0
call fcn.004fa1e0
add esp, 8
xor al, al
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.0057b3d4
add esp, 0xc4
ret 4
mov eax, dword [esp + 8]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
call dword [ecx + 0x20]
cmp eax, ebx
jge 0x50afe9
push eax
push 0x5d019c
call fcn.004fa1e0
mov eax, dword [esp + 0x10]
add esp, 8
cmp eax, ebx
je 0x50afcf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor al, al
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.0057b3d4
add esp, 0xc4
ret 4
mov ecx, dword [esp + 0x28]
push ebp
mov ebp, dword [esp + 0x44]
push edi
mov edi, dword [esp + 0x4c]
lea eax, [ecx - 0x1a]
cmp eax, 5
mov dword [esp + 0x18], edi
ja case.0x50b00a.28
movzx edx, byte [eax + 0x50b458]
jmp dword [edx*4 + 0x50b450]
push ecx
push 0x5d0150
call fcn.004fa1e0
mov eax, dword [esp + 0x18]
add esp, 8
cmp eax, ebx
je 0x50b02d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor al, al
jmp 0x50b433
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push 0x8810
push ebx
lea ecx, [esp + 0x30]
push ecx
push eax
call dword [edx + 0x24]
cmp eax, ebx
jge 0x50b070
push eax
push 0x5d0128
call fcn.004fa1e0
mov eax, dword [esp + 0x18]
add esp, 8
cmp eax, ebx
je 0x50b069
mov edx, dword [eax]
push eax
call dword [edx + 8]
xor al, al
jmp 0x50b433
mov eax, edi
imul eax, ebp
lea eax, [eax + eax*2]
push esi
push eax
call fcn.0057a774
mov esi, eax
add esp, 4
cmp esi, ebx
mov dword [esp + 0x28], esi
jne 0x50b0b8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
push eax
call dword [edx + 8]
push 0x5d0100
mov dword [esp + 0x18], ebx
call fcn.004fa1e0
add esp, 4
xor al, al
jmp 0x50b432
cmp edi, ebx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x20], edx
mov eax, esi
jbe 0x50b209
mov dword [esp + 0x24], edi
mov edi, edi
mov ecx, dword [esp + 0x34]
add ecx, 0xffffffec
cmp ecx, 5
mov esi, edx
ja case.default.0x50b0e2
jmp dword [ecx*4 + 0x50b460]
cmp ebp, ebx
jbe case.default.0x50b0e2
lea esi, [edx + 1]
mov edi, ebp
mov cl, byte [esi + 1]
mov byte [eax], cl
mov cl, byte [esi]
inc eax
mov byte [eax], cl
mov cl, byte [esi - 1]
inc eax
mov byte [eax], cl
inc eax
add esi, 3
dec edi
jne 0x50b0f6
jmp case.default.0x50b0e2
cmp ebp, ebx
jbe case.default.0x50b0e2
lea esi, [edx + 1]
mov edi, ebp
nop
mov cl, byte [esi + 1]
mov byte [eax], cl
mov cl, byte [esi]
inc eax
mov byte [eax], cl
mov cl, byte [esi - 1]
inc eax
mov byte [eax], cl
inc eax
add esi, 4
dec edi
jne 0x50b120
jmp case.default.0x50b0e2
cmp ebp, ebx
jbe case.default.0x50b0e2
mov edi, ebp
mov ebx, dword [esi]
mov ecx, ebx
shr ecx, 0xb
and cl, 0x1f
mov edx, ebx
and bl, 0x1f
shr edx, 5
and dl, 0x3f
mov byte [esp + 0x13], bl
mov bl, cl
shl cl, 3
shr bl, 2
or bl, cl
mov cl, dl
shl dl, 2
shr cl, 2
or cl, dl
mov byte [eax], bl
inc eax
mov byte [eax], cl
mov cl, byte [esp + 0x13]
mov dl, cl
shr dl, 2
shl cl, 3
inc eax
or dl, cl
mov byte [eax], dl
inc eax
add esi, 2
dec edi
jne 0x50b146
jmp 0x50b1e2
cmp ebp, ebx
jbe case.default.0x50b0e2
mov edi, ebp
mov ebx, dword [esi]
mov ecx, ebx
shr ecx, 0xa
and cl, 0x1f
mov edx, ebx
and bl, 0x1f
shr edx, 5
and dl, 0x1f
mov byte [esp + 0x13], bl
mov bl, cl
shl cl, 3
shr bl, 2
or bl, cl
mov cl, dl
shl dl, 3
shr cl, 2
or cl, dl
mov byte [eax], bl
inc eax
mov byte [eax], cl
mov cl, byte [esp + 0x13]
mov dl, cl
shr dl, 2
shl cl, 3
inc eax
or dl, cl
mov byte [eax], dl
inc eax
add esi, 2
dec edi
jne 0x50b198
mov edx, dword [esp + 0x20]
xor ebx, ebx
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
add edx, esi
dec ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
jne 0x50b0d0
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x50b225
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x18]
push eax
push 0x55
push edi
push ebp
push esi
call fcn.005a0f50
test eax, eax
push esi
setne byte [esp + 0x2b]
call fcn.0057bb03
mov al, byte [esp + 0x2b]
add esp, 0x18
cmp al, bl
jne 0x50b267
mov ecx, dword [esp + 0x18]
push edi
push ebp
push ecx
push 0x5d00d8
call fcn.004fa1e0
add esp, 0x10
xor al, al
jmp 0x50b432
cmp byte [0x664c54], bl
je 0x50b430
mov edx, dword [esp + 0x18]
push 0x5c87d8
push edx
call fcn.0057c174
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x50b430
push 2
push ebx
push esi
call fcn.0057ca99
push esi
call fcn.0057c9c9
push ebx
push ebx
push esi
mov edi, eax
call fcn.0057ca99
add edi, 0xffffffeb
push edi
call fcn.0057d0df
push esi
push 1
mov ebp, eax
lea eax, [esp + 0xa0]
push 0x15
push eax
call fcn.0057c81b
push esi
push 1
push edi
push ebp
call fcn.0057c81b
add esp, 0x40
push esi
call fcn.0057c069
add esp, 4
push 0x40
lea ecx, [esp + 0x94]
push ecx
push edi
push ebp
call fcn.004fb200
mov edx, dword [esp + 0x28]
add esp, 8
push eax
push edx
call fcn.0050aef0
lea eax, [esp + 0xa0]
add esp, 0x10
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x50b307
sub eax, esi
inc eax
mov dword [esp + 0x1c], eax
mov byte [esp + 0x6b], al
add al, 0x23
mov byte [esp + 0x56], al
mov eax, dword [esp + 0x18]
mov cl, 0x49
push 0x5c9b74
push eax
mov byte [esp + 0x5c], 0xe1
mov byte [esp + 0x5d], bl
mov byte [esp + 0x5f], 0x45
mov byte [esp + 0x60], 0x78
mov byte [esp + 0x61], 0x69
mov byte [esp + 0x62], 0x66
mov byte [esp + 0x63], bl
mov byte [esp + 0x64], bl
mov byte [esp + 0x65], cl
mov byte [esp + 0x66], cl
mov byte [esp + 0x67], 0x2a
mov byte [esp + 0x68], bl
mov byte [esp + 0x69], 8
mov byte [esp + 0x6a], bl
mov byte [esp + 0x6b], bl
mov byte [esp + 0x6c], bl
mov byte [esp + 0x6d], 1
mov byte [esp + 0x6e], bl
mov byte [esp + 0x6f], 0xe
mov byte [esp + 0x70], 1
mov byte [esp + 0x71], 2
mov byte [esp + 0x72], bl
mov byte [esp + 0x74], bl
mov byte [esp + 0x75], bl
mov byte [esp + 0x76], bl
mov byte [esp + 0x77], 0x1a
mov byte [esp + 0x78], bl
mov byte [esp + 0x79], bl
mov byte [esp + 0x7a], bl
mov byte [esp + 0x7b], bl
mov byte [esp + 0x7c], bl
mov byte [esp + 0x7d], bl
mov byte [esp + 0x7e], bl
call fcn.0057c174
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x50b427
push esi
push 1
lea ecx, [esp + 0x80]
push 0x15
push ecx
call fcn.0057cf7b
push esi
push 1
lea edx, [esp + 0x6c]
push 0x23
push edx
call fcn.0057cf7b
mov eax, dword [esp + 0x3c]
push esi
push 1
push eax
lea ecx, [esp + 0xbc]
push ecx
call fcn.0057cf7b
push esi
push ebx
call fcn.0057dc03
push esi
push 0xff
call fcn.0057dc03
add esp, 0x40
push esi
push 1
push edi
push ebp
call fcn.0057cf7b
push esi
call fcn.0057c069
add esp, 0x14
push ebp
call fcn.0057cfc7
add esp, 4
mov al, 1
pop esi
mov ecx, dword [esp + 0xcc]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.0057b3d4
add esp, 0xc4
ret 4