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

Disassembly:
sub esp, 0x7a8
push ebx
push ebp
push esi
push edi
mov ecx, 0x63
xor eax, eax
lea edi, [esp + 0x309]
mov byte [esp + 0x308], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x63
xor eax, eax
lea edi, [esp + 0x499]
mov byte [esp + 0x498], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x49], eax
mov dword [esp + 0x11], ecx
mov dword [esp + 0x4d], eax
mov dword [esp + 0x15], ecx
mov dword [esp + 0x51], eax
mov dword [esp + 0x19], ecx
mov dword [esp + 0x55], eax
xor edx, edx
mov word [esp + 0x59], ax
mov dword [esp + 0x1d], ecx
mov byte [esp + 0x5b], al
mov byte [esp + 0x10], al
mov dword [esp + 0x5d], eax
mov dword [esp + 0x2d], edx
mov dword [esp + 0x61], eax
mov word [esp + 0x21], cx
mov dword [esp + 0x65], eax
mov dword [esp + 0x31], edx
mov dword [esp + 0x69], eax
mov byte [esp + 0x23], cl
mov byte [esp + 0x2c], cl
mov word [esp + 0x35], dx
mov word [esp + 0x6d], ax
mov ecx, 0x63
lea edi, [esp + 0x179]
mov byte [esp + 0x6f], al
mov byte [esp + 0x178], dl
mov byte [esp + 0x37], dl
rep stosd dword es:[edi], eax
xor ecx, ecx
mov byte [esp + 0x5c], dl
mov dword [esp + 0x39], ecx
mov byte [esp + 0x38], dl
stosw word es:[edi], ax
mov dword [esp + 0x3d], ecx
mov dword [esp + 0x71], edx
mov word [esp + 0x41], cx
mov dword [esp + 0x75], edx
stosb byte es:[edi], al
mov byte [esp + 0x43], cl
mov byte [esp + 0x70], cl
mov byte [esp + 0x628], cl
mov ecx, 0x63
xor eax, eax
lea edi, [esp + 0x629]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov dword [esp + 0x79], edx
mov dword [esp + 0x85], eax
mov dword [esp + 0x7d], edx
mov dword [esp + 0x89], eax
mov word [esp + 0x81], dx
mov dword [esp + 0x8d], eax
mov byte [esp + 0x48], 0
mov dword [esp + 0x91], eax
mov byte [esp + 0x83], dl
mov word [esp + 0x95], ax
mov byte [esp + 0x84], dl
mov byte [esp + 0x97], al
mov ecx, 0x36
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], al
mov dword [esp + 0x28], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [esp + 0x7bc]
mov dword [esp + 0x44], edx
cmp edi, edx
jne 0x5223de
pop edi
pop esi
pop ebp
mov eax, 0xc9
pop ebx
add esp, 0x7a8
ret
mov edx, dword [edi + 4]
xor ecx, ecx
mov esi, dword [sym.imp.MSVCR90.dll_sprintf]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
push edx
mov dword [esp + 0x54], ecx
lea eax, [esp + 0x4c]
mov dword [esp + 0x58], ecx
push 0x54a1f8
push eax
mov dword [esp + 0x64], ecx
call esi
mov edx, dword [edi]
xor ecx, ecx
mov dword [esp + 0x68], ecx
push edx
mov dword [esp + 0x70], ecx
lea eax, [esp + 0x6c]
mov dword [esp + 0x74], ecx
push 0x54a1f8
mov dword [esp + 0x7c], ecx
push eax
mov dword [esp + 0x84], ecx
call esi
xor ecx, ecx
push 0x6e
mov dword [esp + 0x2c], ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0x30], ecx
push 0x54a1f8
mov dword [esp + 0x38], ecx
push edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
call esi
add esp, 0x24
mov ebx, dword [esp + 0x28]
xor eax, eax
and ebx, 0xffff
mov dword [esp + 0x2c], eax
push ebx
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], eax
push 0x54a1fc
push ecx
mov dword [esp + 0x40], eax
call esi
lea edx, [esp + 0x38]
lea eax, [esp + 0x1c]
push edx
lea ecx, [esp + 0x58]
push eax
lea edx, [esp + 0x70]
push ecx
push edx
push 4
push 0x54a1f4
call fcn.00527620
mov ebp, eax
add esp, 0x24
test ebp, ebp
je 0x5227e4
mov ecx, 0x64
xor eax, eax
lea edi, [esp + 0x178]
push ebp
rep stosd dword es:[edi], eax
call fcn.00526da0
add esp, 4
cmp eax, 0x190
ja 0x5227e4
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x178]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov eax, ecx
mov esi, edi
mov edi, edx
mov ebp, dword [sym.imp.MSVCR90.dll_free]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call ebp
mov ecx, 0x64
xor eax, eax
lea edi, [esp + 0x62c]
lea edx, [esp + 0x17c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x62c]
push ecx
push edx
push str.getLicItemStr
push 3
push 0x54a1e4
call fcn.00527620
mov edx, eax
add esp, 0x18
test edx, edx
je 0x5227e4
mov ecx, 0x64
xor eax, eax
lea edi, [esp + 0x308]
lea esi, [esp + 0x308]
rep stosd dword es:[edi], eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x98], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x98]
push edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call ebp
lea edi, [esp + 0x30c]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x24], ecx
shr cx, 4
test cx, cx
jbe 0x5225c3
and ecx, 0xffff
lea esi, [esp + 0x308]
mov edi, ecx
push esi
push 0x5498d0
call fcn.0051a170
add esp, 8
add esi, 0x10
dec edi
jne 0x5225af
mov eax, dword [esp + 0x7bc]
lea ecx, [esp + 0x24]
lea edx, [esp + 0x498]
push ecx
push edx
lea ecx, [esp + 0x310]
push eax
push ecx
call fcn.00523860
add esp, 0x10
test eax, eax
jne 0x522836
mov eax, dword [esp + 0x24]
mov cx, ax
shr cx, 4
test cx, cx
jbe 0x522627
and ecx, 0xffff
lea esi, [esp + 0x498]
mov edi, ecx
push esi
push 0x5498d0
call fcn.0051a6a0
add esp, 8
add esi, 0x10
dec edi
jne 0x52260f
mov eax, dword [esp + 0x24]
and eax, 0xffff
xor edx, edx
mov dword [esp + 0x70], edx
mov ecx, 0x64
mov byte [esp + eax + 0x498], 0
xor eax, eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x3c], eax
lea edi, [esp + 0x178]
mov dword [esp + 0x7c], edx
rep stosd dword es:[edi], eax
mov dword [esp + 0x80], edx
lea ecx, [esp + 0x178]
mov dword [esp + 0x40], eax
lea edx, [esp + 0x38]
push ecx
lea eax, [esp + 0x74]
push edx
lea ecx, [esp + 0x4a0]
push eax
push ecx
push 3
push 0x54a1e4
call fcn.00527460
add esp, 0x18
cmp eax, 0xffffffff
je 0x52280c
mov esi, str.error
lea eax, [esp + 0x70]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x5226c8
test cl, cl
je 0x5226c4
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x5226c8
add eax, 2
add esi, 2
test cl, cl
jne 0x5226a4
xor eax, eax
jmp 0x5226cd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x5227f4
xor eax, eax
mov ecx, 0x37
mov dword [esp + 0x10], eax
lea edi, [esp + 0x9c]
mov dword [esp + 0x14], eax
lea edx, [esp + 0x9c]
mov dword [esp + 0x18], eax
push edx
mov dword [esp + 0x20], eax
lea edx, [esp + 0x17c]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x88], ecx
lea eax, [esp + 0x88]
mov dword [esp + 0x8c], ecx
push eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ecx
lea ecx, [esp + 0x18]
push ecx
push edx
push 3
push 0x54a1f4
call fcn.00527460
add esp, 0x18
cmp eax, 0xffffffff
je 0x52280c
lea eax, [esp + 0x10]
push eax
call fcn.00526df0
mov esi, eax
mov eax, dword [esp + 0x7c8]
add esp, 4
cmp esi, dword [eax]
ja 0x52281c
lea ecx, [esp + 0x84]
push ecx
call fcn.00526df0
lea edx, [ebx + ebx*4]
mov ecx, eax
add esp, 4
lea eax, [ebx + edx*2]
lea eax, [eax + eax*4]
shl eax, 2
cdq
sub eax, edx
sar eax, 1
test ax, ax
je 0x52279e
add eax, 0xffff
mov ebp, dword [esp + 0x7c0]
mov edi, dword [esp + 0x44]
and eax, 0xffff
mov edx, ecx
add eax, ebp
push ecx
shr edx, 1
push eax
lea eax, [esp + 0xa4]
add edi, edx
push eax
mov dword [esp + 0x50], edi
call fcn.00527770
add esp, 0xc
cmp esi, edi
jbe 0x522834
mov eax, dword [esp + 0x28]
mov esi, dword [sym.imp.MSVCR90.dll_sprintf]
inc eax
mov dword [esp + 0x28], eax
jmp 0x522459
pop edi
pop esi
pop ebp
mov eax, 0x132
pop ebx
add esp, 0x7a8
ret
lea ecx, [esp + 0x38]
push ecx
call fcn.00526df0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7a8
ret
pop edi
pop esi
pop ebp
mov eax, 0x12f
pop ebx
add esp, 0x7a8
ret
add esi, 0xdc
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov eax, 0xcf
pop ebx
add esp, 0x7a8
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7a8
ret