Function at 0x402bf0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
xor eax, eax
mov ecx, 0x79
mov edx, 0x45
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x1fc]
mov esi, 0x53
push ebx
mov ebx, 0x4c
sub esp, 0x35c
rep stosd dword es:[edi], eax
mov eax, 0x53
mov ecx, 0x4e
mov dword [ebp - 0x1fc], str.American
mov word [ebp - 0x1dc], ax
mov eax, 0x45
mov edi, 0x52
mov dword [ebp - 0x1f8], 0x6e0065
mov dword [ebp - 0x1e4], 0x6e0065
mov dword [ebp - 0x1e0], 0x55002d
mov dword [ebp - 0x1d0], str.Belgian
mov dword [ebp - 0x1cc], 0x6c006e
mov dword [ebp - 0x1c8], 0x42002d
mov word [ebp - 0x1c4], dx
mov dword [ebp - 0x1a4], str.Chinese
mov dword [ebp - 0x1a0], 0x68007a
mov dword [ebp - 0x18c], 0x68007a
mov dword [ebp - 0x188], 0x43002d
mov word [ebp - 0x184], cx
mov dword [ebp - 0x178], str.Dutch
mov dword [ebp - 0x174], 0x6c006e
mov dword [ebp - 0x160], 0x6c006e
mov dword [ebp - 0x15c], 0x4e002d
mov word [ebp - 0x158], bx
mov dword [ebp - 0x14c], str.English
mov dword [ebp - 0x148], 0x6e0065
mov dword [ebp - 0x134], 0x6e0065
mov dword [ebp - 0x130], 0x55002d
mov word [ebp - 0x12c], si
mov dword [ebp - 0x120], str.French
mov dword [ebp - 0x11c], 0x720066
mov dword [ebp - 0x108], 0x720066
mov word [ebp - 0xd4], ax
mov eax, 0x55
mov word [ebp - 0xa8], ax
mov eax, 0x53
mov word [ebp - 0x7c], ax
mov eax, 0x6a
mov word [ebp - 0x58], ax
mov eax, 0x52
mov dword [ebp - 0x104], 0x46002d
mov word [ebp - 0x100], di
mov dword [ebp - 0xf4], str.German
mov dword [ebp - 0xf0], 0x650064
mov dword [ebp - 0xdc], 0x650064
mov dword [ebp - 0xd8], 0x44002d
mov dword [ebp - 0xc8], str.Hungarian
mov dword [ebp - 0xc4], 0x750068
mov dword [ebp - 0xb0], 0x750068
mov dword [ebp - 0xac], 0x48002d
mov dword [ebp - 0x9c], str.Icelandic
mov dword [ebp - 0x98], 0x730069
mov dword [ebp - 0x84], 0x730069
mov dword [ebp - 0x80], 0x49002d
mov dword [ebp - 0x70], str.Japanese
mov dword [ebp - 0x6c], 0x61006a
mov dword [ebp - 0x56], 0x2d0061
mov dword [ebp - 0x52], 0x50004a
mov dword [ebp - 0x44], str.Korean
mov dword [ebp - 0x40], 0x6f006b
mov dword [ebp - 0x2c], 0x6f006b
mov dword [ebp - 0x28], 0x4b002d
mov dword [ebp - 0x334], 0
mov word [ebp - 0x24], ax
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x33c], eax
mov eax, str.American
mov dword [esp + 4], eax
mov dword [esp], 0
call dword [0x40c0f4]
test eax, eax
je 0x403348
call dword [0x40c0dc]
mov dword [esp + 4], 0x209
mov dword [esp], str..._wine_dlls_msvcr120_tests_msvcr120.c
mov edi, eax
call fcn.004070c0
mov ebx, dword [edi]
test ebx, ebx
je 0x403810
mov eax, ebx
shr eax, 0x10
je 0x4037d0
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov esi, eax
sub esp, 8
mov eax, str._invalid_
test esi, esi
jne 0x402f68
cmp word [ebx], 0
je 0x402eba
lea esi, [esi]
nop
add esi, 1
cmp word [ebx + esi*2], 0
jne 0x402eb0
mov eax, 0x224c
lea edx, [ebp - 0x326]
mov dword [ebp - 0x32c], ebx
lea ecx, [esi - 1]
mov word [ebp - 0x328], ax
lea eax, [ebp - 0x206]
cmp edx, eax
ja 0x402f3d
nop
test esi, esi
jle 0x402f3d
add dword [ebp - 0x32c], 2
mov eax, dword [ebp - 0x32c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x403753
ja 0x403373
cmp ax, 9
je 0x403723
cmp ax, 0xa
jne 0x4036c3
mov eax, 0x6e5c
add edx, 2
mov esi, ecx
mov word [edx - 2], ax
lea esi, [esi]
nop
lea eax, [ebp - 0x206]
lea ecx, [esi - 1]
cmp edx, eax
jbe 0x402ee0
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x402f57
mov ebx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], bx
mov byte [eax], 0
lea eax, [ebp - 0x328]
mov dword [esp], eax
call fcn.00407de0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x334]
mov dword [esp + 4], str._d___lc_names_0____s_n
mov dword [esp + 8], eax
mov ecx, dword [edi]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.00407330
mov dword [esp + 4], 0x20a
mov dword [esp], str..._wine_dlls_msvcr120_tests_msvcr120.c
call fcn.004070c0
mov esi, dword [edi + 4]
test esi, esi
je 0x403820
mov eax, esi
shr eax, 0x10
je 0x4037b0
mov dword [esp + 4], 0xffffffff
mov ebx, str._invalid_
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x403084
cmp word [esi], 0
je 0x402fea
add eax, 1
cmp word [esi + eax*2], 0
jne 0x402fe0
mov edx, 0x224c
lea ecx, [eax - 1]
mov word [ebp - 0x328], dx
lea edx, [ebp - 0x326]
test eax, eax
jle 0x403057
lea eax, [ebp - 0x206]
cmp edx, eax
ja 0x403057
add esi, 2
movzx eax, word [esi - 2]
cmp ax, 0xd
je 0x403622
ja 0x4033a0
cmp ax, 9
je 0x403695
cmp ax, 0xa
jne 0x403635
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
lea esi, [esi]
lea esi, [esi]
lea ecx, [eax - 1]
test eax, eax
jg 0x403003
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x403071
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x328]
mov dword [esp], eax
call fcn.00407de0
mov ebx, eax
mov eax, dword [ebp - 0x33c]
mov dword [esp + 4], eax
mov eax, dword [edi + 4]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_lstrcmpW]
mov dword [ebp - 0x338], eax
call eax
mov edx, 1
sub esp, 8
test eax, eax
jne 0x403770
mov eax, dword [ebp - 0x334]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str._d___lc_names_1____s_n
mov dword [esp + 8], eax
mov dword [esp], edx
call fcn.00407330
mov eax, 2
mov dword [ebp - 0x32c], edi
mov edi, eax
mov dword [esp + 4], 0x20e
mov dword [esp], str..._wine_dlls_msvcr120_tests_msvcr120.c
call fcn.004070c0
mov eax, dword [ebp - 0x32c]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x403613
mov eax, ebx
shr eax, 0x10
je 0x4035a0
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov dword [ebp - 0x330], str._invalid_
sub esp, 8
test eax, eax
jne 0x4031f8
cmp word [ebx], 0
je 0x40314a
lea esi, [esi]
nop
add eax, 1
cmp word [ebx + eax*2], 0
jne 0x403140
mov edx, 0x224c
mov dword [ebp - 0x330], ebx
lea ecx, [eax - 1]
mov word [ebp - 0x328], dx
lea edx, [ebp - 0x326]
test eax, eax
jle 0x4031c7
lea esi, [esi]
lea eax, [ebp - 0x206]
cmp edx, eax
ja 0x4031c7
add dword [ebp - 0x330], 2
mov eax, dword [ebp - 0x330]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x4034d0
ja 0x4033d0
cmp ax, 9
je 0x403543
cmp ax, 0xa
jne 0x4034e3
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
lea esi, [esi]
lea ecx, [eax - 1]
test eax, eax
jg 0x403170
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x4031e1
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x328]
mov dword [esp], eax
call fcn.00407de0
mov dword [ebp - 0x330], eax
mov eax, dword [ebp - 0x32c]
mov ebx, dword [eax + edi*4]
mov esi, ebx
test ebx, ebx
je 0x4035cc
mov eax, ebx
shr eax, 0x10
je 0x403573
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x403600
cmp word [ebx], 0
je 0x40324a
lea esi, [esi]
nop
add eax, 1
cmp word [ebx + eax*2], 0
jne 0x403240
mov edx, 0x224c
lea ecx, [eax - 1]
mov word [ebp - 0x328], dx
lea edx, [ebp - 0x326]
test eax, eax
jle 0x4032b7
lea eax, [ebp - 0x206]
cmp edx, eax
ja 0x4032b7
add esi, 2
movzx eax, word [esi - 2]
cmp ax, 0xd
je 0x4034b3
ja 0x403400
cmp ax, 9
je 0x403483
cmp ax, 0xa
jne 0x403423
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
lea esi, [esi]
lea esi, [esi]
lea ecx, [eax - 1]
test eax, eax
jg 0x403263
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x4032d1
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x328]
mov dword [esp], eax
call fcn.00407de0
mov esi, eax
mov eax, dword [ebp - 0x32c]
mov ebx, dword [eax + edi*4]
mov eax, dword [ebp - 0x32c]
mov dword [esp + 4], ebx
mov eax, dword [eax + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0x338]
call eax
mov ecx, dword [ebp - 0x330]
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp - 0x334]
movzx eax, al
mov dword [esp + 0xc], edi
add edi, 1
mov dword [esp + 0x10], esi
mov dword [esp + 8], ecx
mov dword [esp + 4], str._d___lc_names__d____s__expected__s_n
mov dword [esp], eax
call fcn.00407330
cmp edi, 6
jne 0x4030dc
add dword [ebp - 0x334], 1
mov eax, dword [ebp - 0x334]
add dword [ebp - 0x33c], 0x2c
cmp eax, 0xb
je 0x403830
mov eax, dword [ebp - 0x33c]
mov eax, dword [eax - 4]
jmp 0x402e34
cmp ax, 0x22
je 0x403740
cmp ax, 0x5c
jne 0x4036c3
mov esi, 0x5c5c
add edx, 2
mov word [edx - 2], si
mov esi, ecx
jmp 0x402f30
cmp ax, 0x22
je 0x4036b0
cmp ax, 0x5c
jne 0x403635
mov ebx, 0x5c5c
add edx, 2
mov eax, ecx
mov word [edx - 2], bx
jmp 0x403050
cmp ax, 0x22
je 0x403560
cmp ax, 0x5c
jne 0x4034e3
mov ebx, 0x5c5c
add edx, 2
mov eax, ecx
mov word [edx - 2], bx
jmp 0x4031c0
cmp ax, 0x22
je 0x4034a0
cmp ax, 0x5c
jne 0x403423
mov ebx, 0x5c5c
add edx, 2
mov eax, ecx
mov word [edx - 2], bx
jmp 0x4032b0
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x4035e0
mov ebx, eax
mov byte [edx], 0x5c
add edx, 5
shr bx, 0xc
movzx ebx, bx
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [edx - 4], bl
mov ebx, eax
shr bx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [edx - 3], bl
mov ebx, eax
and eax, 0xf
shr bx, 4
movzx eax, byte [eax + str.0123456789abcdef]
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [edx - 1], al
mov eax, ecx
mov byte [edx - 2], bl
jmp 0x4032b0
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x4032b0
mov eax, 0x225c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x4032b0
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x4032b0
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x4031c0
lea esi, [eax - 0x20]
cmp si, 0x5e
jbe 0x4035f0
mov esi, eax
mov byte [edx], 0x5c
add edx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdef]
mov esi, eax
shr si, 8
and esi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdef]
mov esi, eax
and eax, 0xf
shr si, 4
movzx eax, byte [eax + str.0123456789abcdef]
and esi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdef]
mov byte [edx - 1], al
mov eax, ecx
mov byte [edx - 2], bl
jmp 0x4031c0
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x4031c0
mov esi, 0x225c
add edx, 2
mov eax, ecx
mov word [edx - 2], si
jmp 0x4031c0
movzx ebx, bx
mov dword [esp], str._04x
mov dword [esp + 4], ebx
call fcn.00402550
mov esi, eax
mov eax, dword [ebp - 0x32c]
mov ebx, dword [eax + edi*4]
jmp 0x4032ed
movzx ebx, bx
mov dword [esp], str._04x
mov dword [esp + 4], ebx
call fcn.00402550
mov dword [ebp - 0x330], eax
mov eax, dword [ebp - 0x32c]
mov ebx, dword [eax + edi*4]
mov esi, ebx
test ebx, ebx
jne 0x40320b
mov esi, str._null_
jmp 0x4032ed
mov byte [edx], al
add edx, 1
mov eax, ecx
jmp 0x4032b0
mov byte [edx], al
add edx, 1
mov eax, ecx
jmp 0x4031c0
mov eax, dword [ebp - 0x32c]
mov esi, str._invalid_
mov ebx, dword [eax + edi*4]
jmp 0x4032ed
mov dword [ebp - 0x330], str._null_
jmp 0x4031f8
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x403050
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x4037f0
mov ebx, eax
mov byte [edx], 0x5c
add edx, 5
shr bx, 0xc
movzx ebx, bx
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [edx - 4], bl
mov ebx, eax
shr bx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [edx - 3], bl
mov ebx, eax
and eax, 0xf
shr bx, 4
movzx eax, byte [eax + str.0123456789abcdef]
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [edx - 1], al
mov eax, ecx
mov byte [edx - 2], bl
jmp 0x403050
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x403050
mov eax, 0x225c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x403050
lea esi, [eax - 0x20]
cmp si, 0x5e
jbe 0x403800
mov esi, eax
mov byte [edx], 0x5c
add edx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdef]
mov esi, eax
shr si, 8
and esi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdef]
mov esi, eax
and eax, 0xf
shr si, 4
movzx eax, byte [eax + str.0123456789abcdef]
and esi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdef]
mov byte [edx - 1], al
mov esi, ecx
mov byte [edx - 2], bl
jmp 0x402f30
mov eax, 0x745c
add edx, 2
mov esi, ecx
mov word [edx - 2], ax
jmp 0x402f30
mov eax, 0x225c
add edx, 2
mov esi, ecx
mov word [edx - 2], ax
jmp 0x402f30
mov eax, 0x725c
add edx, 2
mov esi, ecx
mov word [edx - 2], ax
jmp 0x402f30
mov eax, dword [ebp - 0x33c]
add eax, 0x14
mov dword [esp + 4], eax
mov eax, dword [edi + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0x338]
call eax
sub esp, 8
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004071a0
xor edx, edx
test eax, eax
setne dl
jmp 0x4030b1
movzx esi, si
mov dword [esp], str._04x
mov dword [esp + 4], esi
call fcn.00402550
mov ebx, eax
jmp 0x403084
movzx ebx, bx
mov dword [esp], str._04x
mov dword [esp + 4], ebx
call fcn.00402550
jmp 0x402f68
mov byte [edx], al
add edx, 1
mov eax, ecx
jmp 0x403050
mov byte [edx], al
mov esi, ecx
add edx, 1
jmp 0x402f30
mov eax, str._null_
jmp 0x402f68
mov ebx, str._null_
jmp 0x403084
mov dword [esp + 4], 0x40a7c3
mov dword [esp], 0
call dword [0x40c0f4]
call dword [0x40c0dc]
mov dword [esp + 4], 0x215
mov dword [esp], str..._wine_dlls_msvcr120_tests_msvcr120.c
mov edi, eax
mov dword [ebp - 0x330], eax
call fcn.004070c0
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x403a77
mov eax, ebx
shr eax, 0x10
je 0x403a53
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edi, eax
sub esp, 8
mov eax, str._invalid_
test edi, edi
jne 0x403962
cmp word [ebx], 0
je 0x4038ba
lea esi, [esi]
lea esi, [esi]
add edi, 1
cmp word [ebx + edi*2], 0
jne 0x4038b0
mov eax, 0x224c
lea edx, [ebp - 0x326]
lea esi, [ebp - 0x206]
mov dword [ebp - 0x32c], ebx
mov word [ebp - 0x328], ax
lea ecx, [edi - 1]
cmp edx, esi
ja 0x403937
nop
test edi, edi
jle 0x403937
add dword [ebp - 0x32c], 2
mov eax, dword [ebp - 0x32c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x403a40
ja 0x403990
cmp ax, 9
je 0x403a10
cmp ax, 0xa
jne 0x4039b0
mov eax, 0x6e5c
add edx, 2
mov edi, ecx
mov word [edx - 2], ax
lea esi, [esi]
nop
lea ecx, [edi - 1]
cmp edx, esi
jbe 0x4038e0
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x403951
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x328]
mov dword [esp], eax
call fcn.00407de0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x330]
mov dword [esp + 4], str.___lc_locale_name_func___1____s_n
mov eax, dword [eax + 4]
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00407330
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ax, 0x22
je 0x403a23
cmp ax, 0x5c
jne 0x4039b0
mov ebx, 0x5c5c
add edx, 2
mov edi, ecx
mov word [edx - 2], bx
jmp 0x403930
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x403a6b
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdef]
and edi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov byte [edx - 1], al
mov edi, ecx
mov byte [edx - 2], bl
jmp 0x403930
mov eax, 0x745c
add edx, 2
mov edi, ecx
mov word [edx - 2], ax
jmp 0x403930
mov edi, 0x225c
add edx, 2
mov word [edx - 2], di
mov edi, ecx
jmp 0x403930
mov eax, 0x725c
add edx, 2
mov edi, ecx
mov word [edx - 2], ax
jmp 0x403930
movzx ebx, bx
mov dword [esp], str._04x
mov dword [esp + 4], ebx
call fcn.00402550
jmp 0x403962
mov byte [edx], al
mov edi, ecx
add edx, 1
jmp 0x403930
mov eax, str._null_
jmp 0x403962