Function at 0x4170e0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov edx, ecx
push ebx
mov ebx, dword [ebp + 0xc]
xor ecx, ecx
push esi
mov esi, eax
mov dword [ebp - 8], edx
mov al, byte [eax]
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0xc], ecx
push edi
test al, al
je 0x41743f
mov edi, dword [sym.imp.USER32.dll_CharNextA]
nop
cmp al, 0x25
jne 0x417422
push esi
call edi
mov esi, eax
mov cl, byte [esi]
cmp cl, 0x25
je 0x417422
xor edi, edi
xor edx, edx
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], edx
test cl, cl
je 0x41718a
mov edi, dword [ebp + 0xc]
nop dword [eax]
mov eax, ebx
cmp cl, 0x23
jne 0x41714c
add edi, 2
jmp 0x41716f
cmp cl, 0x2a
jne 0x41715b
mov eax, dword [eax]
add ebx, 4
mov dword [ebp - 4], eax
jmp 0x41716f
cmp cl, 0x2d
je 0x41716f
cmp cl, 0x2b
je 0x41716f
cmp cl, 0x30
je 0x41716f
cmp cl, 0x20
jne 0x41717e
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
mov cl, byte [esi]
test cl, cl
jne 0x417140
cmp dword [ebp - 4], 0
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x14]
jne 0x4171bf
push esi
call fcn.0043d0dd
mov cl, byte [esi]
add esp, 4
mov dword [ebp - 4], eax
test cl, cl
je 0x4171bf
nop dword [eax]
movsx ecx, cl
push ecx
call fcn.0043d1ad
add esp, 4
test eax, eax
je 0x4171bf
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
mov cl, byte [esi]
test cl, cl
jne 0x4171a0
cmp byte [esi], 0x2e
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], 0
jne 0x417222
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
push esi
cmp byte [esi], 0x2a
jne 0x4171f2
mov eax, dword [ebp - 0x14]
add ebx, 4
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
jmp 0x417222
call fcn.0043d0dd
mov cl, byte [esi]
add esp, 4
mov dword [ebp - 0x10], eax
test cl, cl
je 0x417222
movsx ecx, cl
push ecx
call fcn.0043d1ad
add esp, 4
test eax, eax
je 0x417222
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
mov cl, byte [esi]
test cl, cl
jne 0x417203
mov al, byte [esi]
mov ecx, ebx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], 0
cmp al, 0x49
jne 0x41724c
cmp byte [esi + 1], 0x36
jne 0x41724c
cmp byte [esi + 2], 0x34
jne 0x41724c
add esi, 3
mov dword [ebp - 0xc], 0x40000
jmp case.0x41725e.71
movsx eax, al
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x41725e.71
movzx eax, byte [eax + 0x417668]
jmp dword [eax*4 + 0x417658]
mov dword [ebp - 0xc], 0x10000
jmp case.0x41725e.70
mov dword [ebp - 0xc], 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, dword [ebp - 0x14]
mov esi, eax
movsx eax, byte [esi]
or eax, dword [ebp - 0xc]
cmp eax, 0x10063
jg 0x417324
je 0x4172ae
cmp eax, 0x73
jg 0x417316
je 0x4172fd
cmp eax, 0x43
je 0x4172ae
cmp eax, 0x53
je 0x4172dc
cmp eax, 0x63
jne 0x417389
mov edi, 2
add ebx, 4
mov eax, dword [ebp - 4]
cmp edi, eax
cmovg eax, edi
mov edi, eax
mov eax, dword [ebp - 0x10]
test eax, eax
je case.0x41739f.70
cmp edi, eax
cmovl eax, edi
mov edi, eax
add dword [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextA]
jmp 0x41742a
mov edi, dword [ecx]
add ebx, 4
test edi, edi
jne 0x4172ec
mov edi, 6
jmp 0x4172b6
lea ecx, [edi + 2]
nop
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4172f0
jmp 0x417372
mov eax, dword [ecx]
add ebx, 4
test eax, eax
jne 0x41730b
lea edi, [eax + 6]
jmp 0x4172b6
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
jmp 0x417376
sub eax, 0x10043
je 0x4172ae
sub eax, 0x10
je 0x4172fd
jmp 0x417389
cmp eax, 0x20053
jg 0x417341
je 0x417351
cmp eax, 0x10073
je 0x4172fd
cmp eax, 0x20043
je 0x4172ae
jmp 0x417389
sub eax, 0x20063
je 0x4172ae
sub eax, 0x10
jne 0x417389
mov edi, dword [ecx]
add ebx, 4
test edi, edi
jne 0x417364
mov edi, 6
jmp 0x4172b6
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x417367
sub edi, ecx
sar edi, 1
cmp edi, 1
mov eax, 1
cmovl edi, eax
test edi, edi
jne 0x4172b6
movsx eax, byte [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x41739f.70
movzx eax, byte [eax + 0x4176a4]
jmp dword [eax*4 + 0x417690]
mov eax, dword [ebp - 0xc]
mov edi, 0x20
and eax, 0x40000
neg eax
sbb eax, eax
and eax, 4
add eax, 4
add ebx, eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 4]
cmp eax, edi
cmovge edi, eax
add dword [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextA]
jmp 0x41742a
push str.Floating_point____e____f____g__and___G__is_not_supported_by_the_WTL::CString_class.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call dword [sym.imp.KERNEL32.dll_DebugBreak]
add dword [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextA]
jmp 0x41742a
mov eax, dword [ebp - 0x10]
mov edi, 0x20
add eax, dword [ebp - 4]
add ebx, 4
cmp eax, edi
jl case.0x41739f.70
mov edi, eax
add dword [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextA]
jmp 0x41742a
add ebx, 4
add dword [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextA]
jmp 0x41742a
push esi
call edi
sub eax, esi
add dword [ebp + 0xc], eax
push esi
call edi
mov esi, eax
mov al, byte [esi]
test al, al
jne 0x417110
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 8]
mov esi, dword [edx]
cmp dword [esi - 0xc], 1
lea ebx, [esi - 0xc]
jg 0x417453
cmp ecx, dword [esi - 4]
jle 0x417524
mov edi, dword [esi - 8]
cmp ecx, edi
mov dword [ebp - 0x14], edi
cmovl ecx, edi
mov dword [ebp + 0xc], ecx
test ecx, ecx
jne 0x41746c
mov eax, dword [0x4750d8]
jmp 0x41749a
lea eax, [ecx + 0xd]
push eax
call fcn.0041e1f8
add esp, 4
test eax, eax
je 0x417611
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 8]
mov dword [eax], 1
mov byte [eax + ecx + 0xc], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
add eax, 0xc
mov dword [edx], eax
lea eax, [ecx + 1]
mov ecx, dword [edx]
add edi, 1
je 0x4174d0
test ecx, ecx
jne 0x4174ba
call fcn.0043b0af
mov dword [eax], 0x16
jmp 0x417648
test esi, esi
je 0x4174f9
cmp eax, edi
jb 0x4174f9
push edi
push esi
push ecx
call fcn.0041f810
mov edx, dword [ebp - 8]
add esp, 0xc
mov eax, dword [edx]
or esi, 0xffffffff
mov ecx, dword [ebp - 0x14]
mov dword [eax - 8], ecx
cmp ebx, dword [0x4750d4]
je 0x417527
mov eax, esi
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x417527
push ebx
call fcn.0041e201
add esp, 4
jmp 0x417527
push eax
push 0
push ecx
call fcn.00420310
add esp, 0xc
test esi, esi
jne 0x417519
call fcn.0043b0af
mov dword [eax], 0x16
jmp 0x417648
mov eax, dword [ebp + 0xc]
inc eax
cmp eax, edi
jmp 0x41763b
or esi, 0xffffffff
mov ebx, dword [ebp - 8]
mov ecx, dword [ebx]
test ecx, ecx
je 0x417611
push dword [ebp - 0x18]
mov eax, dword [ecx - 4]
push 0
push dword [ebp + 8]
inc eax
push eax
push ecx
call fcn.0040c870
push dword [eax + 4]
push dword [eax]
call fcn.0043af59
mov edi, dword [ebx]
add esp, 0x1c
cmp dword [edi - 0xc], 1
lea eax, [edi - 0xc]
jle 0x4175f0
cmp eax, dword [0x4750d4]
je 0x417589
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x417582
mov eax, dword [ebx]
sub eax, 0xc
push eax
call fcn.0041e201
add esp, 4
mov eax, dword [0x4750d8]
mov dword [ebx], eax
mov esi, dword [edi - 8]
test esi, esi
jne 0x417597
mov eax, dword [0x4750d8]
jmp 0x4175bb
lea eax, [esi + 0xd]
push eax
call fcn.0041e1f8
add esp, 4
test eax, eax
je 0x4175f0
mov dword [eax], 1
mov byte [eax + esi + 0xc], 0
mov dword [eax + 4], esi
mov dword [eax + 8], esi
add eax, 0xc
mov dword [ebx], eax
mov ebx, dword [eax - 4]
mov esi, dword [edi - 8]
inc ebx
add esi, 1
je 0x4175ed
test eax, eax
jne 0x4175da
call fcn.0043b0af
mov dword [eax], 0x16
jmp 0x417648
test edi, edi
je 0x41761c
cmp ebx, esi
jb 0x41761c
push esi
push edi
push eax
call fcn.0041f810
add esp, 0xc
mov ebx, dword [ebp - 8]
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebx]
pop edi
pop esi
mov dword [ecx - 8], eax
mov ecx, dword [ebx]
pop ebx
mov byte [eax + ecx], 0
mov eax, 1
mov esp, ebp
pop ebp
ret 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
push ebx
push 0
push eax
call fcn.00420310
add esp, 0xc
test edi, edi
jne 0x417639
call fcn.0043b0af
mov dword [eax], 0x16
jmp 0x417648
cmp ebx, esi
jae 0x41764d
call fcn.0043b0af
mov dword [eax], 0x22
call fcn.00429851
push 0x80070057
call fcn.0040e0c0
nop
jne 0x4176cc
inc ecx
add byte [ebp + 0x72], ah
inc ecx
add byte [esi + 0x72], ch
inc ecx
add byte [ecx + 0x4172], al
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [eax]
add eax, dword [eax]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ecx]
add eax, dword [ebx]
add eax, dword [edx]
nop
aad 0x73
inc ecx
add byte [esi + 0x14004173], ah
je 0x4176dc
add cl, dh
jae 0x4176e0
add dh, cl
jb 0x4176e4
add byte [eax], al
add al, 0
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add dword [esp + eax], eax
add al, 4
add al, 4
add al, 4
add al, 4
add al, 1
add byte [eax], al
add byte [ecx + eax], al
add al, 4
add al, 4
add al, byte [ecx]
add eax, dword [esp + eax]
add al, 2
add dword [ebx], eax
add al, 4
add al, 4
add dword [esp + eax], eax
add esp, ecx
int3
int3
push ebp
mov ebp, esp
movzx eax, word [ebp + 0xc]
push eax
mov bh, 0x45
or al, 0x50
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_EndDialog]
xor eax, eax
pop ebp
ret 0x10