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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51b4f8
sub esp, 0x54
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
lea ebx, [ecx - 1]
test ebx, ebx
jl 0x51b4c6
mov edx, dword [edx + ecx*4 - 4]
nop
cmp edx, 0x10000
jb 0x51b4bf
shr edx, 0x10
mov ecx, 0x10
cmp edx, 0x100
jb 0x51b4b8
shr edx, 8
lea ebp, [ecx + 8]
cmp edx, 0x100
jae 0x51b4eb
shl ebx, 5
lea ecx, [0x7e6380]
movzx ecx, byte [ecx + edx]
add ecx, ebp
add ecx, ebx
mov dword [esp + 0x28], ecx
lea eax, [0x633cc0]
mov dword [esp], eax
lea eax, [ecx + 7]
sar eax, 0x1f
shr eax, 0x1d
lea eax, [eax + ecx + 7]
sar eax, 3
mov dword [esp + 0x24], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00442930
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x51b2ed
mov edx, ecx
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x40]
mov ecx, eax
mov eax, dword [esp + 0x3c]
test ecx, ecx
jne 0x51b491
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
nop
mov ecx, dword [esp + 0x60]
mov dword [esp], ecx
mov edx, dword [esp + 0x64]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
call fcn.00489c50
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
test eax, eax
jne 0x51b45e
mov edx, dword [esp + 0x24]
test edx, edx
jbe 0x51b4e2
mov ebx, dword [esp + 0x3c]
movzx ebp, byte [ebx]
mov esi, dword [0x815e34]
mov edi, dword [0x815e30]
mov edx, dword [esp + 0x28]
sar edx, 0x1f
shr edx, 0x1d
mov ebx, dword [esp + 0x28]
add edx, ebx
sar edx, 3
shl edx, 3
sub ebx, edx
cmp esi, ebx
jbe 0x51b4d9
movzx edx, byte [edi + ebx]
and ebp, edx
mov edx, dword [esp + 0x3c]
xchg ebp, eax
mov byte [edx], al
xchg ebp, eax
mov ebx, dword [esp + 0x24]
cmp ebx, 1
jbe 0x51b4cd
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], ecx
movzx eax, byte [edx + 1]
xor eax, 0x42
mov byte [edx + 1], al
mov byte [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
call fcn.00516bd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
mov byte [esp + 0x44], 0
lea eax, [esp + 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call fcn.0050bba0
mov eax, dword [esp + 8]
test eax, eax
jl 0x51b42d
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x51b2dd
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x24]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jmp 0x51b2dd
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x54
ret
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebp
add esp, 0x54
ret
mov ebp, ecx
jmp 0x51b280
xor ecx, ecx
jmp 0x51b26e
xor ecx, ecx
jmp 0x51b29d
mov eax, 1
mov ecx, ebx
call fcn.0045ad60
mov eax, ebx
mov ecx, esi
call fcn.0045ad60
xor eax, eax
mov ecx, edx
call fcn.0045ad60
mov eax, edx
mov ecx, 0x100
call fcn.0045ad70
nop
call fcn.00459790
jmp fcn.0051b210