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

Disassembly:
sub esp, 0x864
push ebx
push ebp
push esi
push edi
mov ecx, 0x63
xor eax, eax
lea edi, [esp + 0x3c5]
mov byte [esp + 0x3c4], 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 + 0x555]
mov byte [esp + 0x554], 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 + 0x85]
mov byte [esp + 0x84], 0
rep stosd dword es:[edi], eax
xor ecx, ecx
xor edx, edx
stosw word es:[edi], ax
mov dword [esp + 0x49], ecx
mov dword [esp + 0x21], edx
mov dword [esp + 0x4d], ecx
mov dword [esp + 0x25], edx
stosb byte es:[edi], al
xor eax, eax
mov dword [esp + 0x51], ecx
mov dword [esp + 0x15], eax
mov dword [esp + 0x55], ecx
mov dword [esp + 0x19], eax
mov word [esp + 0x59], cx
mov word [esp + 0x1d], ax
mov byte [esp + 0x5b], cl
mov byte [esp + 0x6e4], cl
mov ecx, 0x63
lea edi, [esp + 0x6e5]
mov byte [esp + 0x1f], al
mov byte [esp + 0x48], al
mov dword [esp + 0x29], edx
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 + 0x35], ecx
mov dword [esp + 0x5d], eax
mov dword [esp + 0x39], ecx
mov dword [esp + 0x61], eax
mov dword [esp + 0x3d], ecx
mov dword [esp + 0x65], eax
mov dword [esp + 0x41], ecx
mov dword [esp + 0x69], eax
mov word [esp + 0x45], cx
mov word [esp + 0x6d], ax
mov byte [esp + 0x47], cl
mov byte [esp + 0x214], cl
mov dword [esp + 0x2d], edx
mov ecx, 0x3f
lea edi, [esp + 0x215]
mov byte [esp + 0x6f], al
mov byte [esp + 0x34], al
mov word [esp + 0x31], dx
rep stosd dword es:[edi], eax
mov byte [esp + 0x33], dl
mov byte [esp + 0x5c], dl
mov byte [esp + 0x74], dl
mov dword [esp + 0x75], edx
mov dword [esp + 0x79], edx
mov byte [esp + 0x14], 0
stosw word es:[edi], ax
mov dword [esp + 0x7d], edx
mov byte [esp + 0x20], 0
mov word [esp + 0x81], dx
stosb byte es:[edi], al
mov byte [esp + 0x83], dl
mov ebx, dword [esp + 0x878]
test ebx, ebx
jne 0x40c2aa
pop edi
pop esi
pop ebp
mov eax, 0xc9
pop ebx
add esp, 0x864
ret
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x28], eax
xor edx, edx
mov esi, dword [sym.imp.MSVCR71.dll_sprintf]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
mov eax, dword [ebx]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x3c], edx
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x44], edx
push 0x42c080
push ecx
mov dword [esp + 0x50], edx
call esi
mov edx, dword [ebx + 4]
lea eax, [esp + 0x68]
push edx
push 0x42c080
push eax
call esi
mov ecx, dword [ebx + 8]
lea edx, [esp + 0x4c]
push ecx
push 0x42c080
push edx
call esi
lea eax, [esp + 0x58]
lea ecx, [esp + 0x80]
push eax
lea edx, [esp + 0x48]
push ecx
push edx
push 3
push 0x42c07c
call fcn.004112d0
mov edx, eax
add esp, 0x38
test edx, edx
jne 0x40c358
pop edi
pop esi
pop ebp
mov eax, 0x132
pop ebx
add esp, 0x864
ret
mov ecx, 0x64
xor eax, eax
lea edi, [esp + 0x84]
lea ebp, [esp + 0x84]
rep stosd dword es:[edi], eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push edx
mov eax, ecx
mov esi, edi
mov edi, ebp
mov ebp, dword [sym.imp.MSVCR71.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 + 0x6e8]
lea edx, [esp + 0x88]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x6e8]
push ecx
push edx
push str.getDeviceInfoStr
push 3
push 0x42c06c
call fcn.004112d0
mov edx, eax
add esp, 0x18
test edx, edx
jne 0x40c3df
pop edi
pop esi
pop ebp
mov eax, 0x132
pop ebx
add esp, 0x864
ret
mov ecx, 0x64
xor eax, eax
lea edi, [esp + 0x3c4]
lea esi, [esp + 0x3c4]
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 + 0x70], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x70]
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 + 0x3c8]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x14], ecx
shr cx, 4
mov esi, ecx
lea ecx, [esp + 0x78]
push ecx
call fcn.004113e0
lea edx, [esp + 0x7c]
lea eax, [esp + 0x31c]
push edx
push eax
call fcn.004048d0
add esp, 0x10
test si, si
jbe 0x40c47f
lea edi, [esp + 0x3c4]
and esi, 0xffff
lea ecx, [esp + 0x314]
push edi
push ecx
call fcn.004049c0
add esp, 8
add edi, 0x10
dec esi
jne 0x40c468
lea edx, [esp + 0x10]
lea eax, [esp + 0x554]
push edx
push eax
lea ecx, [esp + 0x3cc]
push ebx
push ecx
call fcn.0040dd20
add esp, 0x10
test eax, eax
jne 0x40c60f
mov eax, dword [esp + 0x10]
mov cx, ax
shr cx, 4
test cx, cx
jbe 0x40c4df
and ecx, 0xffff
lea esi, [esp + 0x554]
mov edi, ecx
lea edx, [esp + 0x314]
push esi
push edx
call fcn.00404bf0
add esp, 8
add esi, 0x10
dec edi
jne 0x40c4c4
mov eax, dword [esp + 0x10]
and eax, 0xffff
xor ecx, ecx
mov dword [esp + 0x14], ecx
lea edi, [esp + 0x84]
mov byte [esp + eax + 0x554], 0
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x50], eax
mov ecx, 0x64
mov dword [esp + 0x54], eax
lea edx, [esp + 0x84]
mov dword [esp + 0x58], eax
push edx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x18]
lea ecx, [esp + 0x4c]
push eax
lea edx, [esp + 0x55c]
push ecx
push edx
push 3
push 0x42c06c
call fcn.00411110
add esp, 0x18
cmp eax, 0xffffffff
jne 0x40c55c
pop edi
pop esi
pop ebp
mov eax, 0x12f
pop ebx
add esp, 0x864
ret
mov esi, str.error
lea eax, [esp + 0x48]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40c58d
test cl, cl
je 0x40c589
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40c58d
add eax, 2
add esi, 2
test cl, cl
jne 0x40c565
xor eax, eax
jmp 0x40c592
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40c5af
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.MSVCR71.dll_atoi]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x864
ret
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x214]
lea edx, [esp + 0x84]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x214]
push ecx
push edx
push 1
push 0x42c07c
call fcn.00411110
add esp, 0x10
cmp eax, 0xffffffff
jne 0x40c5f3
pop edi
pop esi
pop ebp
mov eax, 0x12f
pop ebx
add esp, 0x864
ret
mov eax, dword [esp + 0x87c]
push 0x60
lea ecx, [esp + 0x218]
push eax
push ecx
call fcn.00411470
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x864
ret