Function at 0x10012e80
Capabilities:
Identify system language via api
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100a7b04
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x738
push ebx
push esi
push edi
push 0x3ff
lea eax, [esp + 0x345]
mov ebx, ecx
mov dword [esp + 0x20], 0
push 0
push eax
mov dword [0x100dd15c], ebx
mov byte [esp + 0x34c], 0
call fcn.10088b00
add esp, 0xc
mov ecx, str.ZVpcFXdUUAQXEFdXUgNCfFYAUUoZSEMRVg
push dword [0x100dcf3c]
call fcn.10045550
push eax
lea eax, [esp + 0x348]
push eax
call fcn.10024070
sub esp, 0xc
mov edx, esp
mov dword [edx + 0x14], 0xf
mov dword [edx + 0x10], 0
mov byte [edx], 0
cmp byte [esp + 0x358], 0
jne 0x10012f15
xor ecx, ecx
jmp 0x10012f29
lea ecx, [esp + 0x358]
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10012f20
sub ecx, esi
push ecx
lea eax, [esp + 0x35c]
push eax
mov ecx, edx
call fcn.10004460
mov ecx, 3
call fcn.1002bd20
mov ecx, dword [0x100dd480]
mov edi, dword [0x100dd47c]
sub ecx, edi
mov eax, 0x63e7063f
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add esp, 0x18
add eax, edx
jne 0x10012fce
mov ecx, 0x100bd860
call fcn.10045550
sub esp, 0x18
mov edx, esp
mov esi, eax
mov dword [edx + 0x14], 0xf
mov dword [edx + 0x10], 0
mov byte [edx], 0
cmp byte [esi], 0
jne 0x10012f92
xor ecx, ecx
jmp 0x10012fa0
mov ecx, esi
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10012f97
sub ecx, edi
push ecx
push esi
mov ecx, edx
call fcn.10004460
mov ecx, 1
call fcn.1002bd20
add esp, 0x18
or eax, 0xffffffff
mov ecx, dword [esp + 0x744]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [0x100dcf3c]
cmp esi, eax
jb 0x10013012
mov ecx, 0x100bd880
call fcn.10045550
sub esp, 0x18
mov ecx, esp
push eax
call fcn.100020e0
mov ecx, 2
call fcn.1002bd20
add esp, 0x18
or eax, 0xffffffff
mov ecx, dword [esp + 0x744]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
imul esi, esi, 0x148
add esi, edi
push 1
mov ecx, esi
mov byte [0x100dcf01], 0
call fcn.1002a3f0
lea eax, [esp + 0xb8]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0xb8]
push 2
push eax
push ebx
call dword [sym.imp.USER32.dll_GetParent]
push eax
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0xc0]
mov eax, dword [esp + 0xb8]
sub ecx, dword [esp + 0xbc]
mov edx, dword [0x100daeb0]
sub edi, eax
mov dword [esp + 0x3c], ecx
cmp edx, 0xffffffff
jne 0x10013087
mov dword [0x100daeb0], eax
jmp 0x1001308b
cmp edx, eax
jne 0x100130a4
push 0
push ecx
add edi, 0x14
push edi
push dword [esp + 0xc8]
add eax, 0xfffffff6
push eax
push ebx
call dword [sym.imp.USER32.dll_MoveWindow]
mov eax, dword [0x100dcf08]
push 0x68
mov dword [esp + 0x5c], eax
call fcn.10086a49
add esp, 4
mov dword [esp + 0x50], eax
mov dword [esp + 0x74c], 0
test eax, eax
je 0x100130dd
push ecx
push dword [esp + 0x40]
mov ecx, eax
push edi
sub esp, 8
push ebx
call fcn.10025620
jmp 0x100130df
xor eax, eax
mov dword [esp + 0x74c], 0xffffffff
sub esp, 8
lea ecx, [esp + 0x180]
mov dword [0x100dcf08], eax
mov byte [esp + 0x23], 1
call fcn.100059e0
lea eax, [esp + 0x80]
push eax
mov ecx, esi
mov dword [esp + 0x750], 1
call fcn.10028be0
mov edx, eax
lea ecx, [esp + 0x178]
mov byte [esp + 0x74c], 2
call fcn.10023e20
mov edx, 0x100bd8b0
mov ecx, eax
call fcn.10007e30
mov byte [esp + 0x74c], 1
cmp dword [esp + 0x94], 0x10
jb 0x10013160
push dword [esp + 0x80]
call fcn.100852d7
add esp, 4
mov edx, dword [0x100dd740]
lea ecx, [esp + 0x178]
mov dword [esp + 0x94], 0xf
mov dword [esp + 0x90], 0
mov byte [esp + 0x80], 0
call fcn.10007e30
mov edx, 0x100bd8b8
mov ecx, eax
call fcn.10007e30
mov edx, 0x100db0f0
mov ecx, eax
call fcn.10023e20
mov edx, 0x100bd8b4
mov ecx, eax
call fcn.10007e30
mov ecx, esi
call fcn.10029240
cmp eax, 7
jne 0x100131e0
push dword [0x100dd6dc]
lea ecx, [esp + 0x60]
call fcn.100020e0
mov ebx, eax
mov byte [esp + 0x74c], 3
mov eax, 1
jmp 0x1001322a
push 0xffffffffffffffff
push 0
push 0x100db210
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa0], 0xf
mov dword [esp + 0x9c], 0
mov byte [esp + 0x8c], 0
call fcn.100047d0
lea ebx, [esp + 0x80]
mov dword [esp + 0x74c], 4
mov eax, 2
mov edx, dword [0x100dd3f8]
lea ecx, [esp + 0x178]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
call fcn.10007e30
mov edx, 0x100bd8c0
mov ecx, eax
call fcn.10007e30
mov edx, ebx
mov ecx, eax
call fcn.10023e20
mov edx, 0x100bd8bc
mov ecx, eax
call fcn.10007e30
mov eax, dword [esp + 0x30]
test al, 2
je 0x100132af
and eax, 0xfffffffd
cmp dword [esp + 0x94], 0x10
mov dword [esp + 0x30], eax
jb 0x10013291
push dword [esp + 0x80]
call fcn.100852d7
mov eax, dword [esp + 0x34]
add esp, 4
mov dword [esp + 0x94], 0xf
mov dword [esp + 0x90], 0
mov byte [esp + 0x80], 0
mov dword [esp + 0x74c], 1
test al, 1
je 0x100132ed
and eax, 0xfffffffe
cmp dword [esp + 0x70], 0x10
mov dword [esp + 0x30], eax
jb 0x100132d8
push dword [esp + 0x5c]
call fcn.100852d7
add esp, 4
mov dword [esp + 0x70], 0xf
mov dword [esp + 0x6c], 0
mov byte [esp + 0x5c], 0
mov edx, dword [0x100dd5e8]
push edi
push ecx
lea ecx, [esp + 0x180]
call fcn.10007e30
mov edx, 0x100bd8c8
mov ecx, eax
call fcn.10007e30
add esp, 4
mov ecx, eax
call fcn.10021e20
mov edx, 0x100bd8c4
mov ecx, eax
call fcn.10007e30
push dword [esp + 0x3c]
mov edx, dword [0x100dd508]
push ecx
lea ecx, [esp + 0x180]
call fcn.10007e30
mov edx, 0x100bd8d0
mov ecx, eax
call fcn.10007e30
add esp, 4
mov ecx, eax
call fcn.10021e20
mov edx, 0x100bd8cc
mov ecx, eax
call fcn.10007e30
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov edx, dword [0x100dd718]
movzx eax, ax
push eax
push ecx
lea ecx, [esp + 0x180]
call fcn.10007e30
mov edx, 0x100bd8d8
mov ecx, eax
call fcn.10007e30
add esp, 4
mov ecx, eax
call fcn.10021c90
mov edx, 0x100bd8d4
mov ecx, eax
call fcn.10007e30
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
mov edx, dword [0x100dd5f0]
movzx eax, ax
push eax
push ecx
lea ecx, [esp + 0x180]
call fcn.10007e30
mov edx, 0x100bd8e0
mov ecx, eax
call fcn.10007e30
add esp, 4
mov ecx, eax
call fcn.10021c90
mov edx, 0x100bd8dc
mov ecx, eax
call fcn.10007e30
mov edx, dword [0x100dd764]
lea ecx, [esp + 0x178]
call fcn.10007e30
mov edx, 0x100bd8e8
mov ecx, eax
call fcn.10007e30
mov edx, 0x100db1f8
mov ecx, eax
call fcn.10023e20
mov edx, 0x100bd8e4
mov ecx, eax
call fcn.10007e30
mov ecx, esi
call fcn.1001c3c0
test al, al
je 0x10013451
mov edx, dword [0x100dd608]
lea ecx, [esp + 0x178]
call fcn.10007e30
mov edx, 0x100bd8f0
mov ecx, eax
call fcn.10007e30
mov edx, 0x100db228
mov ecx, eax
call fcn.10023e20
mov edx, 0x100bd8ec
mov ecx, eax
call fcn.10007e30
mov ecx, esi
call fcn.10029240
cmp eax, 7
jne 0x1001427d
mov ecx, 0x100bd8f4
call fcn.10045550
sub esp, 0x18
mov ecx, esp
push eax
call fcn.100020e0
mov ecx, 3
call fcn.1002bd20
add esp, 0x18
mov ecx, esi
call fcn.1001c3c0
test al, al
jne 0x100134ac
mov edx, dword [0x100dd608]
lea ecx, [esp + 0x178]
call fcn.10007e30
mov edx, 0x100bd914
mov ecx, eax
call fcn.10007e30
mov eax, dword [esi + 0x134]
sub eax, dword [esi + 0x130]
lea ebx, [esi + 0x130]
mov dword [esp + 0x3c], ebx
test eax, 0xfffffffc
jne 0x100141a5
mov ecx, dword [esi + 0x60]
test ecx, ecx
je 0x100134e8
mov edx, dword [0x100dd7d0]
call fcn.100277a0
test eax, eax
je 0x100134e8
mov esi, dword [eax + 0x14]
jmp 0x100134ea
xor esi, esi
mov edi, dword [0x100dcf3c]
sub esp, 8
lea ecx, [esp + 0x2b0]
mov dword [esp + 0x1c], esi
inc edi
call fcn.100059e0
push esi
push ecx
mov ecx, str.W1NLL01eQggqVl5URidURhhZFA
mov byte [esp + 0x754], 5
call fcn.10045550
mov edx, eax
lea ecx, [esp + 0x2b0]
call fcn.10007e30
add esp, 4
mov ecx, eax
call fcn.10021e20
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 2
cmp eax, esi
jae 0x100135ad
mov esi, edi
imul esi, esi, 0x148
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 2
cmp eax, dword [0x100dcf2c]
jae 0x100135ad
mov ecx, dword [0x100dd480]
sub ecx, dword [0x100dd47c]
mov eax, 0x63e7063f
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x100135ad
mov edx, dword [0x100dd47c]
add edx, esi
mov ecx, ebx
mov dword [esp + 0x54], edx
inc edi
add esi, 0x148
call fcn.1001bc80
test al, al
je 0x1001359f
lea eax, [esp + 0x54]
push eax
mov ecx, ebx
call fcn.10022400
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 2
cmp eax, dword [esp + 0x14]
jb 0x10013544
cmp byte [0x100dd147], 0
je 0x1001411c
xor edx, edx
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x64], eax
mov byte [esp + 0x74c], 6
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
xor esi, esi
sar eax, 2
mov dword [esp + 0x74], esi
test eax, eax
je 0x1001406f
mov eax, dword [ebx]
sub esp, 8
mov esi, dword [eax + esi*4]
lea ecx, [esp + 0x218]
mov dword [esp + 0xa0], esi
call fcn.100059e0
lea eax, [esp + 0x9c]
push eax
mov ecx, esi
mov byte [esp + 0x750], 7
call fcn.10028d50
mov esi, eax
mov ecx, 0x100bd938
mov byte [esp + 0x74c], 8
call fcn.10045550
mov edx, eax
lea ecx, [esp + 0x210]
call fcn.10007e30
mov edx, esi
mov ecx, eax
call fcn.10023e20
mov byte [esp + 0x74c], 7
cmp dword [esp + 0xb0], 0x10
jb 0x10013670
push dword [esp + 0x9c]
call fcn.100852d7
add esp, 4
sub esp, 0x18
lea ecx, [esp + 0x228]
push esp
call fcn.10005aa0
mov ecx, 3
call fcn.1002bd20
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
add esp, 0x18
sar eax, 2
xor edi, edi
test eax, eax
je 0x100136c6
jmp 0x100136a0
cmp edi, dword [esp + 0x74]
je 0x100136b9
mov eax, dword [ebx]
mov esi, dword [eax + edi*4]
mov ecx, esi
call fcn.1002a480
mov ecx, esi
call fcn.1002a730
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
inc edi
sar eax, 2
cmp edi, eax
jb 0x100136a0
xor ebx, ebx
xor edi, edi
xor esi, esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], esi
xor ecx, ecx
mov byte [esp + 0x74c], 9
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x100dd480]
sub ecx, dword [0x100dd47c]
mov eax, 0x63e7063f
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100138fa
xor eax, eax
mov dword [esp + 0x14], eax
nop
mov ecx, dword [0x100dd47c]
add ecx, eax
cmp byte [ecx + 0xb0], 0
jne 0x1001372e
cmp byte [ecx + 0x128], 0
je 0x100138c2
lea eax, [esp + 0x80]
push eax
call fcn.1000a170
mov byte [esp + 0x74c], 0xa
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x4c], 0
mov dword [esp + 0x20], eax
test eax, eax
je 0x10013888
mov edx, ecx
mov dword [esp + 0x2c], ecx
cmp edx, edi
jae 0x100137f9
cmp ebx, edx
ja 0x100137f9
mov ecx, edx
sub ecx, ebx
sar ecx, 2
mov dword [esp + 0xb4], ecx
cmp edi, esi
jne 0x100137f0
mov eax, esi
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x100137f0
sub edi, ebx
sar edi, 2
mov eax, 0x3fffffff
sub eax, edi
cmp eax, 1
jb 0x100140d2
sub esi, ebx
sar esi, 2
mov ecx, esi
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
inc edi
cmp eax, esi
jae 0x100137c8
xor esi, esi
jmp 0x100137ca
add esi, ecx
cmp esi, edi
cmovb esi, edi
push esi
lea ecx, [esp + 0x44]
call fcn.100238e0
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x2c]
test edi, edi
je 0x10013860
mov eax, dword [ebx + ecx*4]
jmp 0x1001385e
cmp edi, esi
jne 0x10013858
mov eax, esi
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x10013858
sub edi, ebx
sar edi, 2
mov eax, 0x3fffffff
sub eax, edi
cmp eax, 1
jb 0x100140d2
sub esi, ebx
sar esi, 2
mov ecx, esi
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
inc edi
cmp eax, esi
jae 0x10013837
xor esi, esi
jmp 0x10013839
add esi, ecx
cmp esi, edi
cmovb esi, edi
push esi
lea ecx, [esp + 0x44]
call fcn.100238e0
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
test edi, edi
je 0x10013860
mov eax, dword [edx]
mov dword [edi], eax
mov eax, dword [esp + 0x4c]
inc eax
add edi, 4
add edx, 4
mov dword [esp + 0x44], edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x2c], edx
cmp eax, dword [esp + 0x20]
jb 0x10013770
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x74c], 9
test ecx, ecx
je 0x100138be
push ecx
call fcn.100852d7
add esp, 4
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [0x100dd480]
sub ecx, dword [0x100dd47c]
inc dword [esp + 0x1c]
add eax, 0x148
mov dword [esp + 0x14], eax
mov eax, 0x63e7063f
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
jb 0x10013710
mov esi, dword [0x100dd47c]
mov edi, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x100dd480]
sub ecx, esi
mov eax, 0x63e7063f
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10013f67
xor eax, eax
mov dword [esp + 0x2c], eax
nop
mov ecx, dword [esp + 0x98]
add eax, esi
mov dword [esp + 0x24], eax
lea eax, [esp + 0xc8]
push eax
call fcn.10028ac0
mov esi, eax
lea eax, [esp + 0x9c]
mov byte [esp + 0x74c], 0xb
mov ecx, dword [esp + 0x24]
push eax
call fcn.10028ac0
cmp dword [esi + 0x14], 0x10
mov edx, dword [esi + 0x10]
mov ecx, eax
mov dword [esp + 0x4c], edx
jb 0x10013976
mov esi, dword [esi]
cmp dword [ecx + 0x14], 0x10
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x14], eax
jb 0x10013985
mov ecx, dword [ecx]
cmp eax, dword [esp + 0x4c]
cmovb edx, eax
test edx, edx
je 0x100139e9
sub edx, 4
jb 0x100139a6
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x100139ab
add ecx, 4
add esi, 4
sub edx, 4
jae 0x10013995
cmp edx, 0xfffffffc
je 0x100139df
mov al, byte [ecx]
cmp al, byte [esi]
jne 0x100139d8
cmp edx, 0xfffffffd
je 0x100139df
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x100139d8
cmp edx, 0xfffffffe
je 0x100139df
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x100139d8
cmp edx, 0xffffffff
je 0x100139df
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
je 0x100139df
sbb eax, eax
or eax, 1
jmp 0x100139e1
xor eax, eax
test eax, eax
jne 0x10013a01
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jae 0x100139f6
or eax, 0xffffffff
jmp 0x100139ff
xor eax, eax
cmp dword [esp + 0x14], ecx
setne al
test eax, eax
sete byte [esp + 0x3b]
cmp dword [esp + 0xb0], 0x10
jb 0x10013a1f
push dword [esp + 0x9c]
call fcn.100852d7
add esp, 4
mov byte [esp + 0x74c], 9
cmp dword [esp + 0xdc], 0x10
mov dword [esp + 0xb0], 0xf
mov dword [esp + 0xac], 0
mov byte [esp + 0x9c], 0
jb 0x10013a5e
push dword [esp + 0xc8]
call fcn.100852d7
add esp, 4
cmp byte [esp + 0x3b], 0
jne 0x10013a86
sub esp, 0xc
lea eax, [esp + 0x4c]
mov ecx, esp
push eax
call fcn.100222a0
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.100193a0
add esp, 0xc
test al, al
jne 0x10013ac4
mov ecx, dword [0x100dd480]
mov esi, dword [0x100dd47c]
inc dword [esp + 0x1c]
add dword [esp + 0x2c], 0x148
sub ecx, esi
mov eax, 0x63e7063f
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jae 0x10013f67
mov eax, dword [esp + 0x2c]
jmp 0x10013930
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x98]
add esi, 0x11c
mov byte [eax + 0x12d], 1
mov ecx, dword [esi + 4]
lea edx, [esp + 0x7c]
mov dword [esp + 0x7c], eax
cmp edx, ecx
jae 0x10013b27
mov edx, dword [esi]
lea ebx, [esp + 0x7c]
cmp edx, ebx
mov ebx, dword [esp + 0x40]
ja 0x10013b27
lea eax, [esp + 0x7c]
sub eax, edx
sar eax, 2
mov dword [esp + 0x20], eax
cmp ecx, dword [esi + 8]
jne 0x10013b13
push ecx
mov ecx, esi
call fcn.10023150
mov ecx, dword [esp + 0x20]
mov eax, dword [esi]
lea eax, [eax + ecx*4]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x10013b41
mov eax, dword [eax]
jmp 0x10013b3f
cmp ecx, dword [esi + 8]
jne 0x10013b38
push ecx
mov ecx, esi
call fcn.10023150
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x10013b41
mov dword [ecx], eax
mov ecx, dword [esp + 0x34]
add dword [esi + 4], 4
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0x24]
cmp eax, ecx
jae 0x10013be4
cmp edx, eax
ja 0x10013be4
mov esi, eax
mov eax, dword [esp + 0x28]
sub esi, edx
sar esi, 2
cmp ecx, eax
jne 0x10013bdb
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x10013bdb
sub ecx, edx
sar ecx, 2
mov eax, 0x3fffffff
sub eax, ecx
cmp eax, 1
jb 0x100140d2
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x5c]
lea edx, [ecx + 1]
sar eax, 2
mov ecx, eax
mov dword [esp + 0x28], eax
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
cmp eax, dword [esp + 0x28]
jae 0x10013bb6
xor eax, eax
jmp 0x10013bbc
mov eax, dword [esp + 0x28]
add eax, ecx
cmp eax, edx
cmovb eax, edx
push eax
lea ecx, [esp + 0x60]
call fcn.100238e0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x10013c51
mov eax, dword [edx + esi*4]
jmp 0x10013c4f
mov esi, dword [esp + 0x28]
cmp ecx, esi
jne 0x10013c47
mov eax, esi
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x10013c47
sub ecx, edx
sar ecx, 2
mov eax, 0x3fffffff
sub eax, ecx
cmp eax, 1
jb 0x100140d2
sub esi, dword [esp + 0x5c]
lea edx, [ecx + 1]
sar esi, 2
mov ecx, esi
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
cmp eax, esi
jae 0x10013c2a
xor esi, esi
jmp 0x10013c2c
add esi, ecx
cmp esi, edx
cmovb esi, edx
push esi
lea ecx, [esp + 0x60]
call fcn.100238e0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x10013c51
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x60], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0xe0], 0x100c6a00
mov byte [esp + 0x74c], 0xc
mov eax, dword [esp + 0x30]
or eax, 4
push 0
xorps xmm0, xmm0
push 0
lea ecx, [esp + 0x138]
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], eax
mov dword [esp + method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov dword [esp + 0x134], 0x48
mov dword [esp + 0x168], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0x201
mov dword [esp + 0x150], 6
mov dword [esp + 0x154], 0
movlpd qword [esp + 0x158], xmm0
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call fcn.100017b0
push 4
call fcn.10086a49
mov esi, eax
add esp, 4
test esi, esi
je 0x10013d26
push 1
call fcn.10081317
add esp, 4
mov dword [esi], eax
jmp 0x10013d28
xor esi, esi
lea eax, [esp + 0xe4]
mov dword [esp + 0x168], eax
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x134]
mov dword [esp + 0x164], esi
mov dword [esp + 0x170], 0
call fcn.10001860
push eax
mov dword [esp + 0x750], 0xe
call fcn.10004a80
mov byte [esp + 0x750], 0xd
mov ecx, dword [esp + 0x54]
add esp, 4
mov esi, eax
test ecx, ecx
je 0x10013d90
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x10013d90
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
mov eax, dword [esi]
push 0x20
mov eax, dword [eax + 0x20]
mov ecx, esi
call eax
cmp dword [esp + 0x168], 0
mov byte [esp + 0x170], al
jne 0x10013dc5
mov eax, dword [esp + 0x13c]
or eax, 4
push 0
push eax
lea ecx, [esp + 0x138]
call fcn.100017b0
mov dword [esp + 0x74c], 0xf
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xe0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [esp + ecx + 0xdc], eax
lea ecx, [esp + 0xe4]
call fcn.10004720
mov dword [esp + 0xe4], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 4
lea eax, [esp + 0xc8]
mov byte [esp + 0x74c], 0x11
mov ecx, dword [esp + 0x24]
push eax
call fcn.10028d50
mov dword [esp + 0x20], eax
lea eax, [esp + 0x54]
push eax
mov edx, 0x1c
mov ecx, 0x100bd964
mov byte [esp + 0x750], 0x12
call fcn.10032f90
xor edx, edx
add esp, 4
mov esi, eax
cmp dword [esp + 0x54], edx
jle 0x10013e8f
lea esp, [esp]
mov ecx, edx
and ecx, 0x8000001f
jns 0x10013e7f
dec ecx
or ecx, 0xffffffe0
inc ecx
mov al, byte [ecx + str.623b826ae0814f058d429ec42f9a986a]
xor byte [edx + esi], al
inc edx
cmp edx, dword [esp + 0x54]
jl 0x10013e70
mov edx, esi
lea ecx, [esp + 0xe0]
call fcn.10007e30
mov edx, dword [esp + 0x20]
mov ecx, eax
call fcn.10023e20
mov byte [esp + 0x74c], 0x11
cmp dword [esp + 0xdc], 0x10
jb 0x10013ec9
push dword [esp + 0xc8]
call fcn.100852d7
add esp, 4
sub esp, 0x18
lea ecx, [esp + 0xf8]
push esp
call fcn.10005aa0
mov ecx, 3
call fcn.1002bd20
mov byte [esp + 0x764], 9
mov eax, dword [esp + 0xf8]
add esp, 0x18
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xe0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [esp + ecx + 0xdc], eax
lea ecx, [esp + 0xe4]
call fcn.10005ac0
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0xe0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [esp + ecx + 0xdc], eax
lea eax, [esp + 0x130]
push eax
mov dword [esp + method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::ios_base.0
call fcn.10081506
add esp, 4
mov eax, dword [edi + 4]
sub eax, dword [edi]
mov dword [esp + 0x20], 0
sar eax, 2
test eax, eax
je 0x10013fa4
mov ebx, dword [esp + 0x20]
nop
mov eax, dword [edi]
mov esi, dword [eax + ebx*4]
mov ecx, esi
call fcn.1002a5d0
mov ecx, esi
call fcn.1002a890
mov eax, dword [edi + 4]
sub eax, dword [edi]
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x10013f80
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x10013fc9
push ebx
call fcn.100852d7
add esp, 4
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov byte [esp + 0x74c], 6
mov eax, dword [esp + 0x210]
mov eax, dword [eax + 4]
mov dword [esp + eax + method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esp + 0x210]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [esp + ecx + 0x20c], eax
lea ecx, [esp + 0x214]
call fcn.10005ac0
mov eax, dword [esp + 0x210]
mov eax, dword [eax + 4]
mov dword [esp + eax + method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x210]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [esp + ecx + 0x20c], eax
lea eax, [esp + 0x260]
push eax
mov dword [esp + method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::ios_base.0
call fcn.10081506
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x78]
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
inc esi
sar eax, 2
add esp, 4
mov dword [esp + 0x74], esi
cmp esi, eax
jb 0x100135f2
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x5c]
sub edx, ecx
sar edx, 2
xor edi, edi
mov dword [esp + 0x34], edx
test edx, edx
je 0x10014107
mov esi, dword [ecx + edi*4]
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x78]
mov byte [0x100dcf30], 1
mov dword [esp + 0x78], esi
cmp ecx, eax
jae 0x100140dc
mov ecx, dword [ebx]
lea eax, [esp + 0x78]
cmp ecx, eax
mov eax, dword [ebx + 4]
ja 0x100140dc
lea esi, [esp + 0x78]
sub esi, ecx
sar esi, 2
cmp eax, dword [ebx + 8]
jne 0x100140c2
push ecx
mov ecx, ebx
call fcn.10023150
mov edx, dword [esp + 0x34]
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
test ecx, ecx
je 0x100140f6
mov eax, dword [eax + esi*4]
mov dword [ecx], eax
jmp 0x100140f6
push str.vector_T__too_long
call fcn.1008178a
cmp eax, dword [ebx + 8]
jne 0x100140ed
push ecx
mov ecx, ebx
call fcn.10023150
mov edx, dword [esp + 0x34]
mov eax, dword [ebx + 4]
test eax, eax
je 0x100140f6
mov dword [eax], esi
add dword [ebx + 4], 4
mov ecx, dword [esp + 0x5c]
inc edi
cmp edi, edx
jb 0x10014082
mov byte [esp + 0x74c], 5
test ecx, ecx
je 0x1001411c
push ecx
call fcn.100852d7
add esp, 4
push ebx
mov ecx, ebx
call fcn.100222f0
mov byte [esp + 0x74c], 1
mov eax, dword [esp + 0x2a8]
mov eax, dword [eax + 4]
mov dword [esp + eax + method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esp + 0x2a8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [esp + ecx + 0x2a4], eax
lea ecx, [esp + 0x2ac]
call fcn.10005ac0
mov eax, dword [esp + 0x2a8]
mov eax, dword [eax + 4]
mov dword [esp + eax + method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x2a8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [esp + ecx + 0x2a4], eax
lea eax, [esp + 0x2f8]
push eax
mov dword [esp + method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::ios_base.0
call fcn.10081506
add esp, 4
cmp byte [0x100dcf30], 0
jne 0x100141ee
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 2
cmp eax, 2
jae 0x100141ee
mov ecx, str.eF1HQl1cWRQCWBheUgBVR0tEQF0ZFgtbRUZUFFVMX0xZVFUHShIeXUUCER8
call fcn.10045550
sub esp, 0x18
mov ecx, esp
push eax
call fcn.100020e0
mov ecx, 3
call fcn.1002bd20
mov eax, dword [0x100dcf08]
add esp, 0x18
mov dword [eax + 0x44], 0x3e7
mov byte [esp + 0x1b], 0
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
xor edi, edi
sar eax, 2
test eax, eax
je 0x1001427d
mov eax, dword [ebx]
lea ecx, [esp + 0xc8]
push ecx
mov ecx, dword [eax + edi*4]
call fcn.10028ac0
mov esi, eax
mov byte [esp + 0x74c], 0x13
mov edx, dword [0x100dd488]
lea ecx, [esp + 0x178]
call fcn.10007e30
mov edx, 0x100bd9c8
mov ecx, eax
call fcn.10007e30
mov edx, esi
mov ecx, eax
call fcn.10023e20
mov edx, 0x100bd9c4
mov ecx, eax
call fcn.10007e30
mov byte [esp + 0x74c], 1
cmp dword [esp + 0xdc], 0x10
jb 0x10014270
push dword [esp + 0xc8]
call fcn.100852d7
add esp, 4
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
inc edi
sar eax, 2
cmp edi, eax
jb 0x10014200
sub esp, 0x18
lea ecx, [esp + 0x190]
push esp
call fcn.10005aa0
mov ecx, 3
call fcn.1002bd20
add esp, 0x18
push 0x42
call dword [sym.imp.USER32.dll_IsCharUpperA]
mov ecx, 5
test eax, eax
mov ebx, 4
push 0x14
cmovne ebx, ecx
call fcn.10085dc2
mov esi, eax
add esp, 4
test esi, esi
je 0x100142c3
mov dword [esi], ebx
cmp byte [esp + 0x1b], 0
je 0x10014331
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x17c]
call fcn.10005aa0
mov byte [esp + 0x74c], 0x14
mov ecx, dword [0x100dcf08]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov byte [esp + 0x74c], 1
cmp dword [esp + 0xb0], 0x10
jb 0x10014313
push dword [esp + 0x9c]
call fcn.100852d7
add esp, 4
mov dword [esp + 0xb0], 0xf
mov dword [esp + 0xac], 0
mov byte [esp + 0x9c], 0
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x1001434a
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax]
mov eax, dword [0x100ddb74]
mov dword [0x100dd368], 0
test al, 1
jne 0x100143d2
or eax, 1
mov dword [0x100ddb74], eax
mov eax, dword [0x100ddbe8]
test al, 1
jne 0x100143c6
or eax, 1
mov dword [0x100ddbe8], eax
mov eax, dword [0x100ddbdc]
test al, 1
jne 0x100143a2
or eax, 1
mov ecx, str.XVdBDF1eBVNLVFRd
mov dword [0x100ddbdc], eax
call fcn.10045550
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
mov dword [0x100ddbbc], edi
jmp 0x100143a8
mov edi, dword [0x100ddbbc]
mov ecx, str.cVdHNlFRXSIKRVZF
call fcn.10045550
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x100ddb6c], eax
mov dword [0x100ddb1c], eax
jmp 0x100143d7
mov eax, dword [0x100ddb6c]
mov dword [0x100ddb1c], eax
jmp 0x100143d7
mov eax, dword [0x100ddb1c]
call eax
mov dword [0x100dd14c], eax
mov dword [0x100dd150], 0
test esi, esi
je 0x100143f5
push esi
call fcn.10085c14
add esp, 4
mov dword [esp + 0x74c], 0xffffffff
mov eax, dword [esp + 0x178]
mov eax, dword [eax + 4]
mov dword [esp + eax + method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esp + 0x178]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [esp + ecx + 0x174], eax
lea ecx, [esp + 0x17c]
call fcn.10005ac0
mov eax, dword [esp + 0x178]
mov eax, dword [eax + 4]
mov dword [esp + eax + method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x178]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [esp + ecx + 0x174], eax
lea eax, [esp + 0x1c8]
push eax
mov dword [esp + method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::ios_base.0
call fcn.10081506
mov ecx, dword [esp + 0x748]
add esp, 4
xor eax, eax
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret