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

Disassembly:
mov edx, dword [ebx + 0x30]
xor ecx, ecx
leave
movzx eax, word [edx]
test eax, eax
je 0x404c21
mov dword [esp], esi
xor eax, eax
mov dword [esp + 4], edi
inc eax
movzx edi, word [edx + eax*4 - 4]
cmp edi, 0x41
jl 0x404bf1
cmp edi, 0x5a
lea esi, [edi + 0x20]
cmovle edi, esi
movzx esi, di
add ecx, esi
movzx esi, word [edx + eax*4 - 2]
test esi, esi
je 0x404c1a
cmp esi, 0x41
jl fcn.00404c10
lea edi, [esi + 0x20]
movzx edi, di
cmp esi, 0x5a
cmovle esi, edi
add ecx, esi
movzx esi, word [edx + eax*4]
test esi, esi
jne 0x404bdd
mov esi, dword [esp]
mov edi, dword [esp + 4]
lea eax, [ecx + ecx*2]
cmp edi, eax
je 0x405765
mov ebx, dword [ebx]
cmp ebx, esi
jne 0x404bc8
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x34]
mov ecx, dword [0x4f11f4]
mov edx, dword [0x4f1208]
mov ebx, dword [eax + 0x3c]
add ebx, eax
mov esi, dword [0x4f1210]
mov dword [esp + 0x1c], edx
mov edi, dword [ebx + esi*8 + 0x78]
mov edx, dword [edi + eax + 0x20]
mov ebx, dword [edi + eax + 0x1c]
add edx, eax
mov esi, dword [edi + eax + 0x24]
add ebx, eax
mov edi, dword [edi + eax + 0x18]
add esi, eax
test edi, edi
jbe 0x404d25
mov dword [esp + 0x14], edi
xor eax, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], ecx
mov ebx, dword [esp + 0x34]
add ebx, dword [edx + eax*4]
cmp byte [ebx], 0
je 0x404d0e
xor ecx, ecx
inc ecx
lea esi, [ecx + ecx]
cmp byte [ebx + esi - 1], 0
lea edi, [ecx + ecx - 1]
je 0x404cb2
mov edi, esi
cmp byte [ebx + esi], 0
jne 0x404c9b
mov dword [esp + 8], edi
cmp dword [esp + 8], 0
jbe 0x404d0e
xor ecx, ecx
shr edi, 1
je 0x405633
mov dword [esp], eax
xor esi, esi
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
imul ecx, eax
movzx edx, byte [ebx + esi*2]
add ecx, edx
imul ecx, eax
movzx edx, byte [ebx + esi*2 + 1]
inc esi
add ecx, edx
cmp esi, edi
jb 0x404cd4
mov eax, dword [esp]
lea edi, [esi + esi + 1]
mov edx, dword [esp + 4]
lea esi, [edi - 1]
cmp esi, dword [esp + 8]
jae 0x404d10
imul ecx, dword [esp + 0x1c]
movzx ebx, byte [ebx + edi - 1]
add ecx, ebx
jmp 0x404d10
xor ecx, ecx
cmp ecx, dword [esp + 0x18]
je 0x405749
inc eax
cmp eax, dword [esp + 0x14]
jb 0x404c8d
mov dword [esp + 4], 0
mov eax, dword [0x4f121c]
push eax
push 0
call dword [sym.imp.kernel32.dll_LocalAlloc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [0x4f1228]
mov edx, dword [0x4f1208]
mov ebx, dword [eax + 0x3c]
add ebx, eax
mov esi, dword [0x4f1210]
mov dword [esp + 0x24], edx
mov edi, dword [ebx + esi*8 + 0x78]
mov edx, dword [edi + eax + 0x20]
mov ebx, dword [edi + eax + 0x1c]
add edx, eax
mov esi, dword [edi + eax + 0x24]
add ebx, eax
mov edi, dword [edi + eax + 0x18]
add esi, eax
test edi, edi
jbe 0x404e2a
stosb byte es:[edi], al
add byte [eax], al
invalid
mov dword [esp + 0x1c], edi
xor eax, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x34]
add ebx, dword [edx + eax*4]
cmp byte [ebx], 0
je 0x404e13
xor ecx, ecx
inc ecx
lea esi, [ecx + ecx]
cmp byte [ebx + esi - 1], 0
lea edi, [ecx + ecx - 1]
je 0x404db7
mov edi, esi
cmp byte [ebx + esi], 0
jne 0x404da0
mov dword [esp + 0xc], edi
cmp dword [esp + 0xc], 0
jbe 0x404e13
xor ecx, ecx
shr edi, 1
je 0x40563d
mov dword [esp], eax
xor esi, esi
mov dword [esp + 8], edx
mov eax, dword [esp + 0x24]
imul ecx, eax
movzx edx, byte [ebx + esi*2]
add ecx, edx
imul ecx, eax
movzx edx, byte [ebx + esi*2 + 1]
inc esi
add ecx, edx
cmp esi, edi
jb 0x404dd9
mov eax, dword [esp]
lea edi, [esi + esi + 1]
mov edx, dword [esp + 8]
lea esi, [edi - 1]
cmp esi, dword [esp + 0xc]
jae 0x404e15
imul ecx, dword [esp + 0x24]
movzx ebx, byte [ebx + edi - 1]
add ecx, ebx
jmp 0x404e15
xor ecx, ecx
cmp ecx, dword [esp + 0x20]
je 0x405731
inc eax
cmp eax, dword [esp + 0x1c]
jb 0x404d92
xor eax, eax
push 0x104
push dword [esp + 0x18]
push 0
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [str.kqgb]
mov esi, dword [0x4f1200]
movzx ebx, word [ecx + eax*2 - 2]
cmp bx, si
je 0x404e6c
mov esi, ecx
xor edi, edi
mov word [esi + eax*2], di
dec eax
mov ebx, dword [0x4f1200]
movzx ecx, word [esi + eax*2 - 2]
cmp cx, bx
jne 0x404e57
cmp byte [edx], 0
je 0x404e99
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax*2]
xor ecx, ecx
inc ecx
movsx ebx, byte [edx + ecx*2 - 2]
mov word [eax + ecx*4 - 4], bx
movsx ebx, byte [edx + ecx*2 - 1]
test ebx, ebx
je 0x404e99
mov word [eax + ecx*4 - 2], bx
cmp byte [edx + ecx*2], 0
jne 0x404e7a
mov eax, dword [esp + 0x34]
mov ecx, dword [0x4f11e0]
mov dword [esp + 0x24], ecx
invalid
mov edi, 1
jmp 0x404cf7
mov esi, dword [esp + 0x10]
movzx eax, word [esi + eax*2]
mov ebx, dword [esp + 0xc]
or al, 0x8b
push esp
and al, 0x34
add edx, dword [ebx + eax*4]
mov dword [esp + 4], edx
jmp 0x404d2d
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x34], eax
jmp 0x404c3a