Function at 0x51df7440
Capabilities:
Check for software breakpoints
Identify system language via api

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0xb4
mov eax, dword [0x51e8c240]
mov dword [ebp + 0x64], eax
push ebx
mov ebx, dword [ebp + 0x78]
mov eax, dword [ebx + 0x84]
mov eax, dword [eax]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x7c]
and eax, 1
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x7c]
and eax, 8
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [ebp + 0x74]
cmp eax, ecx
push esi
push edi
mov dword [ebp + 0x20], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], ecx
je 0x51df7c95
cmp word [eax], cx
je 0x51df7c95
test byte [ebp + 0x7c], 4
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
je 0x51e2e18a
mov eax, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x70]
mov dword [ebp - 0x30], eax
xor eax, eax
lea edi, [ebp - 0x4c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov esi, ebx
xor ecx, ecx
mov dword [ebp - 0xc], ebx
mov byte [ebx + 1], 0
mov byte [ebx + 4], 5
mov byte [ebx + 3], 5
mov byte [ebx + 2], 5
add ebx, 5
or dword [ebp + 0x18], 0xffffffff
mov dword [ebp + 4], esi
stosd dword es:[edi], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp + 0x34], 4
mov eax, dword [ebp + 0x74]
mov di, word [eax]
cmp di, 0x3b
je 0x51e2ef8c
cmp di, cx
je 0x51e2ef8c
mov dword [ebp - 0x2c], ebx
inc ebx
cmp dword [ebp + 0x34], 2
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp + 8], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp + 0x2c], ecx
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x10], 4
je 0x51df7594
mov dword [ebp + 0x10], ecx
jmp 0x51df7594
mov word [ebx], ax
inc ebx
inc ebx
inc edi
inc edi
inc edx
inc dword [ebp + 0x2c]
xor esi, esi
inc esi
cmp edi, 0xf6
mov dword [ebp + 0x28], edx
jg 0x51e2ee22
add dword [ebp + 0x74], 2
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
movzx ecx, ax
test ecx, ecx
je 0x51df7a18
cmp ecx, 0x22
je 0x51df7805
cmp ecx, 0x5c
je 0x51e2ee06
test esi, esi
je 0x51df752d
cmp dword [ebp + 0x7c], 0
jne 0x51df752d
test edx, edx
je 0x51e2ee31
lea eax, [edx + edx]
mov ecx, ebx
sub ecx, eax
mov byte [ecx - 1], dl
mov dword [ebp - 0x24], 1
mov eax, dword [ebp + 0x74]
mov si, word [eax]
push 2
mov ecx, ebx
sub ecx, dword [ebp - 0xc]
pop edx
add dword [ebp + 0x74], edx
mov eax, 0xf6
cmp ecx, eax
jg 0x51e2e32f
mov ecx, ebx
sub ecx, dword [ebp + 4]
cmp ecx, eax
jg 0x51e2e32f
xor edi, edi
movzx ecx, si
cmp ecx, 0x2a
jle 0x51df77b7
mov eax, ecx
sub eax, 0x30
je 0x51df7820
sub eax, 0xc
je 0x51e2e3f5
sub eax, edx
je 0x51e2e3f5
sub eax, edx
je 0x51e2e3f5
sub eax, 0x1b
je 0x51e2ed92
mov eax, dword [ebp + 0x78]
cmp si, word [eax + 2]
je 0x51df7996
cmp si, word [eax + 8]
je 0x51df7a26
push ecx
call dword [0x51e85024]
mov edi, eax
mov eax, dword [0x51e8b69c]
test eax, eax
je 0x51e2e48a
cmp dword [eax + 0x53b8], 0
jne 0x51e2e569
mov eax, dword [ebp + 0x78]
mov si, word [eax + 4]
cmp di, si
je 0x51e2e4c5
mov ecx, dword [ebp + 0x78]
mov ax, word [ecx]
cmp ax, 0x20
je 0x51e2e588
xor ecx, ecx
cmp di, ax
sete cl
mov eax, ecx
test eax, eax
jne 0x51df7a09
mov eax, dword [0x51e8b69c]
test eax, eax
je 0x51e2e5f2
cmp dword [eax + 0x53b8], 0
jne 0x51e2e668
mov esi, dword [ebp + 0x78]
cmp di, word [esi + 0xa]
mov dword [ebp + 0x7c], 5
je 0x51df7af3
cmp di, word [esi + 0xc]
mov dword [ebp + 0x7c], 6
je 0x51df7af3
cmp di, word [esi + 0x10]
mov dword [ebp + 0x7c], 8
je 0x51df7af3
cmp di, word [esi + 0x12]
mov dword [ebp + 0x7c], 9
je 0x51df7af3
cmp di, word [esi + 0x14]
mov dword [ebp + 0x7c], 0xa
je 0x51df7af3
cmp di, word [esi + 0x16]
mov dword [ebp + 0x7c], 0xb
je 0x51e2e61d
cmp di, word [esi + 0xe]
mov dword [ebp + 0x7c], 7
je 0x51df7af3
cmp di, word [esi + 0x26]
mov dword [ebp + 0x7c], 0x13
je 0x51df7af3
cmp di, word [esi + 0x2c]
mov dword [ebp + 0x7c], 0x16
je 0x51df7af3
cmp di, word [esi + 0x2e]
mov dword [ebp + 0x7c], 0x17
je 0x51df7af3
cmp di, word [esi + 0x30]
mov dword [ebp + 0x7c], 0x18
je 0x51df7af3
mov eax, dword [0x51e8b69c]
test eax, eax
je 0x51e2e632
cmp dword [eax + 0x53b8], 0
jne 0x51e2e68b
cmp di, word [esi + 0x22]
mov dword [ebp + 0x7c], 0x11
je 0x51df7af3
cmp di, word [esi + 0x24]
mov dword [ebp + 0x7c], 0x12
je 0x51df7af3
cmp dword [esi + 0x3c], 0x41e
je 0x51e2e6d4
mov edx, dword [ebp + 0x28]
xor esi, esi
cmp edx, esi
jne 0x51df7795
mov byte [ebx], 6
inc ebx
inc ebx
sub dword [ebp + 0x74], 2
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
movzx ecx, ax
cmp ecx, esi
mov dword [ebp + 0x7c], esi
je 0x51df757b
mov edi, ebx
sub edi, dword [ebp - 0xc]
jmp 0x51df755f
je 0x51e2e44b
mov eax, ecx
sub eax, edi
je 0x51df7a26
sub eax, 0x21
je 0x51e2e3f5
sub eax, edx
je 0x51df7820
sub eax, edx
je 0x51e2e420
dec eax
je 0x51e2e3f5
jmp 0x51df75fa
xor eax, eax
cmp dword [ebp + 0x7c], eax
sete al
test eax, eax
mov dword [ebp + 0x7c], eax
je 0x51df754a
xor esi, esi
inc esi
jmp 0x51df754a
lea eax, [ebp + 0x18]
push edi
push eax
call fcn.51df786b
test eax, eax
pop ecx
pop ecx
je 0x51df7787
cmp dword [ebp + 8], edi
mov dword [ebp + 0x28], edi
je 0x51df788c
cmp dword [ebp - 0x18], edi
jne 0x51df7594
cmp dword [ebp - 8], 0
je 0x51e2ef15
sub dword [ebp + 0x74], 2
xor edi, edi
xor ecx, ecx
xor eax, eax
mov byte [ebx], 4
inc ebx
cmp dword [ebp - 8], edi
sete dl
mov byte [ebx], dl
inc ebx
jmp 0x51df79d6
mov edi, dword [ebp + 0x74]
xor eax, eax
mov byte [ebx], 1
mov dword [ebp + 8], ebx
add ebx, 3
mov byte [ebx], 3
inc ebx
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x38], eax
add edi, 0xfffffffe
jmp 0x51df78e2
xor ecx, ecx
cmp dword [ebp + 0x20], ecx
jne 0x51e2eeab
inc dword [ebp + 0x30]
cmp ax, 0x30
je 0x51df7948
cmp dword [ebp + 0xc], ecx
jne 0x51df7948
cmp dword [ebp + 0x38], ecx
jne 0x51e2eeb7
inc edi
inc edi
cmp dword [ebp + 0x30], 0xff
je 0x51df7961
mov ax, word [edi]
movzx edx, ax
mov ecx, edx
sub ecx, 0
je 0x51df7961
sub ecx, 0x22
je 0x51e2eebf
dec ecx
je 0x51df78b5
sub ecx, 7
je 0x51e2ee8e
sub ecx, 6
je 0x51df78b5
sub ecx, 0x2c
je 0x51e2ee8e
mov ecx, dword [ebp + 0x78]
mov si, word [ecx]
cmp si, 0x20
je 0x51e2ee38
xor ecx, ecx
cmp ax, si
sete cl
test ecx, ecx
je 0x51df794d
mov cx, word [edi + 2]
cmp cx, 0x30
je 0x51df7942
cmp cx, 0x23
jne 0x51e2ee7c
or dword [ebp + 0x10], 1
jmp 0x51df78d7
inc dword [ebp + 0xc]
jmp 0x51df78ce
push edx
call dword [0x51e85024]
mov ecx, dword [ebp + 0x78]
cmp ax, word [ecx + 2]
jne 0x51e2ee56
cmp dword [ebp + 0x38], 0
jne 0x51df796a
mov dword [ebp + 0x38], edi
cmp dword [ebp + 0x24], 0
mov ecx, dword [ebp + 0x1c]
je 0x51e2eee0
mov eax, dword [ebp + 0xc]
mov byte [ebx], cl
inc ebx
mov byte [ebx], al
inc ebx
cmp eax, ecx
jle 0x51df7987
mov dword [ebp + 0xc], ecx
mov eax, dword [ebp + 0x38]
and dword [ebp + 0x2c], 0
mov dword [ebp + 0x74], eax
jmp 0x51df7594
lea eax, [ebp + 0x18]
push edi
push eax
call fcn.51df786b
test eax, eax
pop ecx
pop ecx
je 0x51df7787
cmp dword [ebp - 8], edi
jne 0x51df7787
cmp dword [ebp + 8], edi
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x2c], edi
mov dword [ebp - 0x20], 1
je 0x51e2e473
jmp 0x51df7855
inc eax
inc dword [ebp + 0x14]
add dword [ebp + 0x74], 2
mov edx, dword [ebp + 0x74]
movzx edx, word [edx]
cmp edx, 0x23
je 0x51df79ce
cmp edx, 0x30
jne 0x51df79eb
lea ecx, [eax + 1]
jmp 0x51df79ce
cmp dword [ebp + 0x24], edi
je 0x51e2eefb
mov byte [ebx], al
inc ebx
mov byte [ebx], cl
inc ebx
add dword [ebp + 0x2c], eax
mov dword [ebp - 8], 1
jmp 0x51df7594
cmp dword [ebp + 0x24], 0
je 0x51e2e5e7
jmp 0x51df7666
cmp dword [ebp + 0x7c], ecx
jne 0x51e2ee22
jmp 0x51df757b
mov edi, dword [ebp + 8]
test edi, edi
mov eax, dword [ebp - 0x2c]
mov cl, byte [ebp + 0x10]
mov byte [eax], cl
je 0x51df7a4e
cmp dword [ebp - 0x18], 0
jne 0x51df7a4e
mov al, byte [ebp + 0x20]
mov cl, byte [ebp + 0x14]
add cl, al
mov byte [edi + 2], al
mov eax, dword [ebp + 0x2c]
mov byte [edi + 1], cl
jmp 0x51df7a50
xor eax, eax
mov ecx, dword [ebp + 0x34]
mov byte [ebx], 0
inc ebx
mov dword [ebp + ecx*4 - 0x4c], ebx
mov byte [ebx], al
inc ebx
cmp eax, dword [ebp - 0x14]
jle 0x51df7a66
mov dword [ebp - 0x14], eax
test si, si
jne 0x51e2efbc
mov eax, dword [ebp + 0x18]
cmp eax, 0xffffffff
je 0x51e2ef75
mov edi, dword [ebp + 4]
mov cl, byte [ebp - 0x14]
mov byte [edi], al
xor esi, esi
mov eax, dword [ebp + esi*4 - 0x4c]
test eax, eax
jne 0x51df7aa7
inc esi
cmp esi, 5
jl 0x51df7a85
sub ebx, edi
mov eax, ebx
mov ecx, dword [ebp + 0x64]
pop edi
pop esi
pop ebx
call fcn.51e03d50
add ebp, 0x68
leave
ret
cmp dword [ebp - 0x20], 0
je 0x51df7c8e
mov dl, cl
or dl, 0x80
mov byte [eax], dl
jmp 0x51df7a8d
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x34], eax
lea eax, [ebp + 0x18]
push 1
push eax
call fcn.51df786b
test eax, eax
pop ecx
pop ecx
je 0x51df7787
mov eax, dword [ebp + 0x7c]
and dword [ebp + 0x28], 0
cmp eax, 0x13
jg 0x51e2eab4
je 0x51e2eb2a
cmp eax, 9
jg 0x51df7ca7
je 0x51e2e829
sub eax, 5
je 0x51df7bc9
dec eax
je 0x51df7c4c
dec eax
jne 0x51e2e6ed
lea eax, [ebp + 0x74]
push eax
push 3
mov byte [ebx], 7
push edi
inc ebx
call fcn.51df7c0a
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov dword [ebp + 0x7c], eax
mov eax, dword [0x51e8b69c]
xor edi, edi
add esp, 0xc
cmp eax, edi
je 0x51e2e943
cmp dword [eax + 0x53b8], edi
jne 0x51e2e9d6
mov eax, dword [0x51e8b69c]
cmp eax, edi
je 0x51e2e96c
cmp dword [eax + 0x53b8], edi
jne 0x51e2ea1e
mov eax, dword [0x51e8b69c]
cmp eax, edi
je 0x51e2e9a1
cmp dword [eax + 0x53b8], edi
jne 0x51e2ea70
mov eax, dword [ebp + 0x7c]
cmp eax, 2
je 0x51e2ea8a
add al, 0xb
jmp 0x51df7bfe
lea eax, [ebp + 0x74]
push eax
push 5
mov byte [ebx], 7
push edi
inc ebx
call fcn.51df7c0a
mov dword [ebp + 0x7c], eax
mov eax, dword [0x51e8b69c]
add esp, 0xc
test eax, eax
je 0x51e2e7c2
cmp dword [eax + 0x53b8], 0
jne 0x51e2e7ec
mov al, byte [ebp + 0x7c]
add al, 4
mov byte [ebx], al
inc ebx
and dword [ebp - 0x1c], 0
jmp 0x51df7594
xor esi, esi
cmp dword [ebp - 0x1c], esi
jne 0x51e2e829
lea eax, [ebp + 0x74]
push eax
push 3
mov byte [ebx], 7
push edi
inc ebx
call fcn.51df7c0a
mov dword [ebp + 0x7c], eax
mov eax, dword [0x51e8b69c]
add esp, 0xc
cmp eax, esi
je 0x51e2e764
cmp dword [eax + 0x53b8], esi
jne 0x51e2e78e
mov al, byte [ebp + 0x7c]
jmp 0x51df7bfe
mov byte [eax], cl
jmp 0x51df7a8d
mov edi, dword [ebp + 0x70]
mov esi, 0x51df916c
movsd dword es:[edi], dword [esi]
push 5
movsb byte es:[edi], byte [esi]
pop eax
jmp 0x51df7a97
cmp eax, 0xa
je 0x51e2ea9a
cmp eax, 0xb
je 0x51e2e841
cmp eax, 0x10
jle 0x51df7c01
cmp dword [ebp + 0x7c], 0x12
jg 0x51df7c01
mov al, byte [ebp + 0x7c]
mov byte [ebx], 0xb
inc ebx
mov byte [ebx], al
inc ebx
jmp 0x51df7594
mov eax, dword [0x51e8b69c]
test eax, eax
mov dword [ebp + 0x34], 3
jne 0x51e2e1d8
call esi
cmp ax, 0x411
je 0x51e2e1ba
call esi
cmp ax, 0x404
je 0x51e2e1ba
call esi
cmp ax, 0x412
je 0x51e2e1ba
call esi
cmp ax, 0x804
jne 0x51e2e1ff
mov eax, dword [0x51e8b69c]
test eax, eax
mov dword [ebp + 0x34], 0x20003
jne 0x51e2e1e3
call esi
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
jmp 0x51e2e1f4
cmp dword [eax + 0x53b8], 0
je 0x51e2e1ff
jmp 0x51e2e1bf
xor ecx, ecx
cmp dword [eax + 0x53a8], 0x411
sete cl
mov eax, ecx
test eax, eax
je 0x51e2e1ff
mov dword [ebp + 0x34], 0x30003
push dword [ebp + 0x74]
call fcn.51e03933
xor edi, edi
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x14], edi
mov eax, dword [0x51e8b69c]
test eax, eax
jne 0x51e2e23a
call esi
cmp ax, 0x411
je 0x51e2e253
call esi
cmp ax, 0x404
je 0x51e2e253
call esi
cmp ax, 0x412
je 0x51e2e253
call esi
cmp ax, 0x804
jne 0x51e2e243
jmp 0x51e2e253
cmp dword [eax + 0x53b8], 0
jne 0x51e2e253
mov eax, dword [ebx + 0x44]
push dword [eax + edi]
call fcn.51e03933
cmp dword [ebp + 0x30], eax
jne 0x51e2e27f
mov eax, dword [ebx + 0x44]
push dword [eax + edi]
call fcn.51e03933
push eax
mov eax, dword [ebx + 0x44]
push dword [eax + edi]
push dword [ebp + 0x30]
push dword [ebp + 0x74]
push dword [ebp + 0x34]
push dword [ebp + 4]
call fcn.51df56a5
cmp eax, 2
je 0x51e2e341
inc dword [ebp + 0x14]
add edi, 0xc
cmp edi, 0xcc
jl 0x51e2e20f
cmp ebx, str._.eE_dmyhnsaApPmM_:t__cqwaoge
je 0x51e2e2d5
xor ebx, ebx
xor edi, edi
mov eax, dword [0x51e837f4]
push dword [eax + edi]
call fcn.51e03933
push eax
mov eax, dword [0x51e837f4]
push dword [eax + edi]
push dword [ebp + 0x30]
push dword [ebp + 0x74]
push dword [ebp + 0x34]
push dword [ebp + 4]
call fcn.51df56a5
cmp eax, 2
je 0x51e2e38f
add edi, 0xc
inc ebx
cmp edi, 0xcc
jl 0x51e2e299
mov eax, dword [0x51e8b69c]
test byte [eax + 0x53a5], 1
je 0x51df74a8
xor ebx, ebx
mov edi, 0x51e2f000
push dword [edi]
call fcn.51e03933
cmp dword [ebp + 0x30], eax
jne 0x51e2e31e
push dword [edi]
call fcn.51e03933
push eax
push dword [edi]
push dword [ebp + 0x30]
push dword [ebp + 0x74]
push dword [ebp + 0x34]
push dword [ebp + 4]
call fcn.51df56a5
cmp eax, 2
je 0x51e2e3bf
add edi, 0xc
inc ebx
cmp edi, 0x51e2f09c
jl 0x51e2e2ee
jmp 0x51df74a8
xor edi, edi
cmp dword [ebp + 0x24], edi
je 0x51e2e5df
xor esi, esi
jmp 0x51df75c1
test byte [ebp + 0x7c], 2
je 0x51e2e35d
mov eax, dword [ebp + 0x70]
mov cl, byte [ebp + 0x14]
mov esi, 0x51e2f0a0
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov byte [eax + 7], cl
jmp 0x51e2e3d6
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebx + 0x44]
mov edi, dword [ebp + 0x70]
lea eax, [eax + eax*2]
shl eax, 2
lea edx, [eax + ecx]
mov ecx, dword [edx + 8]
mov esi, dword [edx + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x44]
mov eax, dword [eax + ecx + 8]
jmp 0x51df7a97
test byte [ebp + 0x7c], 2
jne 0x51e2e3c5
mov ecx, dword [0x51e837f4]
lea eax, [ebx + ebx*2]
lea eax, [ecx + eax*4]
mov edx, dword [eax + 8]
mov esi, dword [eax + 4]
mov edi, dword [ebp + 0x70]
mov ecx, edx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x51df7a97
test byte [ebp + 0x7c], 2
je 0x51e2e3e1
mov eax, dword [ebp + 0x70]
mov esi, 0x51e2f0a0
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov byte [eax + 7], bl
push eax
call fcn.51e742dd
jmp 0x51df7a97
lea eax, [ebx + ebx*2]
shl eax, 2
mov edx, dword [eax + 0x51e2f008]
mov esi, dword [eax + 0x51e2f004]
jmp 0x51e2e3a7
lea eax, [ebp + 0x18]
push 2
push eax
call fcn.51df786b
test eax, eax
pop ecx
pop ecx
je 0x51df7787
push dword [ebp + 0x78]
push dword [ebp - 0x30]
push dword [ebp - 0xc]
call fcn.51e67d30
add esp, 0xc
jmp 0x51df7a97
lea eax, [ebp + 0x18]
push edi
push eax
call fcn.51df786b
test eax, eax
pop ecx
pop ecx
je 0x51df7787
add dword [ebp + 0x20], 2
or dword [ebp + 0x10], 2
mov byte [ebx], 0xa
inc ebx
inc dword [ebp + 0x2c]
mov dword [ebp + 0x28], edi
jmp 0x51df7594
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
mov byte [ebx], 6
inc ebx
mov byte [ebx], 0
inc ebx
cmp ax, di
mov dword [ebp + 0x28], edi
jne 0x51e2e46b
mov word [ebx], si
add ebx, edx
jmp 0x51df7594
add dword [ebp + 0x74], edx
mov word [ebx], ax
jmp 0x51e2e464
mov dword [ebp + 8], ebx
mov byte [ebx], 1
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x14], edi
add ebx, 3
jmp 0x51df7855
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
cmp ax, 0x411
je 0x51e2e569
call esi
cmp ax, 0x404
je 0x51e2e569
call esi
cmp ax, 0x412
je 0x51e2e569
call esi
cmp ax, 0x804
je 0x51e2e569
jmp 0x51df7634
cmp dword [ebp + 0x18], 0
je 0x51e2e4df
mov eax, dword [ebp + 0x78]
cmp di, word [eax + 0x30]
mov dword [ebp + 0x7c], 0x18
je 0x51df7af3
mov eax, dword [ebp + 0x74]
xor edi, edi
mov di, word [eax]
lea eax, [ebp + 0x18]
push 0
push eax
mov dword [ebp + 0x7c], edi
call fcn.51df786b
test eax, eax
pop ecx
pop ecx
je 0x51e2e5d5
cmp di, 0x2b
je 0x51e2e50f
cmp di, 0x2d
jne 0x51e2e5d5
mov edi, dword [ebp + 8]
test edi, edi
je 0x51e2e5d5
mov al, byte [ebp + 0x30]
mov cl, byte [ebp + 0x14]
add cl, al
mov byte [edi + 2], al
mov eax, dword [ebp + 0x74]
xor edx, edx
cmp word [eax - 2], si
mov dword [ebp + 0x28], edx
mov byte [edi], 2
mov byte [edi + 1], cl
jne 0x51e2e53c
push 4
pop edx
add dword [ebp + 0x74], 2
cmp word [ebp + 0x7c], 0x2b
jne 0x51e2e54a
or edx, 8
xor eax, eax
mov ecx, dword [ebp + 0x74]
mov cx, word [ecx]
cmp cx, 0x30
je 0x51e2e562
cmp cx, 0x23
jne 0x51e2e5a6
test eax, eax
jne 0x51e2e563
inc eax
add dword [ebp + 0x74], 2
jmp 0x51e2e54c
mov eax, dword [ebp + 0x78]
mov si, word [eax + 4]
cmp di, si
jne 0x51df7644
cmp dword [ebp + 8], 0
jne 0x51e2e4c5
jmp 0x51df7644
cmp di, ax
je 0x51df7a09
mov eax, dword [ecx + 0x84]
cmp di, word [eax + 0x44]
jne 0x51df7666
jmp 0x51df7a09
cmp eax, 3
jl 0x51e2e5ae
push 3
pop eax
mov byte [ebx], 5
mov cl, al
add cl, dl
inc ebx
mov byte [ebx], cl
mov cl, byte [ebp + 0x20]
inc ebx
mov byte [ebx], cl
mov ecx, dword [ebp + 0x2c]
lea eax, [ecx + eax + 2]
inc ebx
mov dword [ebp + 0x2c], eax
mov dword [ebp - 0x18], 1
jmp 0x51df7594
cmp dword [ebp + 0x24], 0
jne 0x51df7787
or eax, 0xffffffff
jmp 0x51df7a97
cmp dword [ebp + 8], 0
jne 0x51e2e5df
jmp 0x51df7666
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
cmp ax, 0x411
je 0x51e2e668
call esi
cmp ax, 0x404
je 0x51e2e668
call esi
cmp ax, 0x412
je 0x51e2e668
call esi
cmp ax, 0x804
je 0x51e2e668
jmp 0x51df7680
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
cmp ax, word [esi + 0x32]
jne 0x51df7af3
jmp 0x51df76e9
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x411
je 0x51e2e68b
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x404
je 0x51e2e68b
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x412
je 0x51e2e68b
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp ax, 0x804
jne 0x51df7758
jmp 0x51e2e68b
cmp dword [ebp], 0
je 0x51df7680
cmp di, 0x6e
jne 0x51df7680
push 0x6e
mov dword [ebp + 0x7c], 0x1c
pop edi
jmp 0x51df7af3
cmp di, word [esi + 0x32]
mov dword [ebp + 0x7c], 0x19
je 0x51df7af3
cmp di, word [esi + 0x34]
mov dword [ebp + 0x7c], 0x1a
je 0x51df7af3
cmp di, word [esi + 0x36]
mov dword [ebp + 0x7c], 0x1b
je 0x51df7af3
cmp di, word [esi + 0x38]
mov dword [ebp + 0x7c], 0x1c
je 0x51df7af3
jmp 0x51df7758
mov eax, dword [ebp + 0x78]
cmp di, word [eax + 0x36]
jne 0x51df7787
mov dword [ebp + 0x7c], 0x1b
jmp 0x51df7af3
dec eax
jne 0x51df7c01
lea eax, [ebp + 0x74]
push eax
xor esi, esi
inc esi
mov byte [ebx], 8
push esi
inc ebx
push edi
mov dword [ebp - 4], ebx
call fcn.51df7c0a
mov byte [ebx], al
mov eax, dword [0x51e8b69c]
add esp, 0xc
inc ebx
test eax, eax
jne 0x51e2e740
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call edi
cmp ax, 0x411
je 0x51e2e749
call edi
cmp ax, 0x404
je 0x51e2e749
call edi
cmp ax, 0x412
je 0x51e2e749
call edi
cmp ax, 0x804
jne 0x51e2e75c
jmp 0x51e2e749
cmp dword [eax + 0x53b8], 0
je 0x51e2e75c
xor ecx, ecx
cmp dword [ebp - 0x10], ecx
je 0x51e2e75c
mov eax, dword [ebp - 4]
add byte [eax], 2
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x1c], esi
jmp 0x51df7594
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call edi
cmp ax, 0x411
je 0x51e2e78e
call edi
cmp ax, 0x404
je 0x51e2e78e
call edi
cmp ax, 0x412
je 0x51e2e78e
call edi
cmp ax, 0x804
jne 0x51df7c86
cmp dword [ebp], esi
je 0x51df7c86
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 0x84]
cmp word [eax + 0x1322], 2
je 0x51df7c86
cmp dword [ebp + 0x7c], 2
jl 0x51df7c86
mov al, byte [ebp + 0x7c]
add al, 0x13
jmp 0x51df7bfe
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
cmp ax, 0x411
je 0x51e2e7ec
call esi
cmp ax, 0x404
je 0x51e2e7ec
call esi
cmp ax, 0x412
je 0x51e2e7ec
call esi
cmp ax, 0x804
jne 0x51df7bf9
cmp dword [ebp], 0
je 0x51df7bf9
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 0x84]
cmp word [eax + 0x1322], 2
je 0x51df7bf9
cmp dword [ebp + 0x7c], 2
jl 0x51df7bf9
cmp dword [ebp + 0x7c], 3
jg 0x51df7bf9
mov al, byte [ebp + 0x7c]
jmp 0x51e2ed73
lea eax, [ebp + 0x74]
push eax
push 1
mov byte [ebx], 8
push edi
inc ebx
call fcn.51df7c0a
add esp, 0xc
jmp 0x51df7bfc
mov esi, dword [ebp + 0x74]
cmp word [esi - 2], di
mov dword [ebp + 0x38], esi
sete al
add al, 0xa
mov byte [ebp + 0x7f], al
movzx eax, word [esi]
push eax
call dword [0x51e85024]
mov ecx, dword [ebp + 0x78]
cmp ax, word [ecx + 0x1e]
jne 0x51e2e86c
add byte [ebp + 0x7f], 0xfe
inc esi
inc esi
mov ax, word [esi]
mov ecx, dword [ebp + 0x78]
cmp ax, word [ecx + 0x28]
jne 0x51e2e87c
inc esi
inc esi
jmp 0x51e2e880
mov byte [ebp + 0x7f], 0xd
movzx eax, word [esi]
inc esi
inc esi
push eax
mov dword [ebp + 0x74], esi
call dword [0x51e85024]
mov ecx, dword [ebp + 0x78]
cmp ax, word [ecx + 0x1a]
jne 0x51e2e92b
cmp byte [ebp + 0x7f], 0xa
jb 0x51e2e8a8
cmp byte [ebp + 0x7f], 0xd
jne 0x51e2e8c0
movzx eax, word [esi]
push eax
call dword [0x51e85024]
mov ecx, dword [ebp + 0x78]
cmp ax, word [ecx + 0x1e]
jne 0x51e2e92b
inc esi
inc esi
mov dword [ebp + 0x74], esi
mov al, byte [ebp + 0x7f]
mov byte [ebx], 8
inc ebx
mov byte [ebx], al
mov eax, dword [ebp - 4]
inc ebx
test eax, eax
je 0x51e2e8dd
add byte [eax], 2
and dword [ebp - 4], 0
jmp 0x51df7c01
mov eax, dword [0x51e8b69c]
test eax, eax
jne 0x51e2e912
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
cmp ax, 0x411
je 0x51e2e91f
call esi
cmp ax, 0x404
je 0x51e2e91f
call esi
cmp ax, 0x412
je 0x51e2e91f
call esi
cmp ax, 0x804
jne 0x51df7c01
jmp 0x51e2e91f
cmp dword [eax + 0x53b8], 0
je 0x51df7c01
mov dword [ebp - 0x10], 1
jmp 0x51df7c01
mov eax, dword [ebp + 0x78]
cmp di, word [eax + 0xe]
jne 0x51e2eb52
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x74], eax
jmp 0x51df7b50
call esi
cmp ax, 0x411
je 0x51e2e9d6
call esi
cmp ax, 0x404
je 0x51e2e9d6
call esi
cmp ax, 0x412
je 0x51e2e9d6
call esi
cmp ax, 0x804
je 0x51e2e9d6
jmp 0x51df7b87
call esi
cmp ax, 0x411
je 0x51e2ea1e
call esi
cmp ax, 0x404
je 0x51e2ea1e
call esi
cmp ax, 0x412
je 0x51e2ea1e
call esi
cmp ax, 0x804
je 0x51e2ea1e
jmp 0x51df7ba0
call esi
cmp ax, 0x411
je 0x51e2ea70
call esi
cmp ax, 0x404
je 0x51e2ea70
call esi
cmp ax, 0x412
je 0x51e2ea70
call esi
cmp ax, 0x804
je 0x51e2ea70
jmp 0x51df7bb9
cmp dword [ebp], edi
je 0x51df7b87
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 0x84]
mov ax, word [eax + 0x1322]
cmp ax, 3
je 0x51e2e9ff
cmp ax, 4
jne 0x51df7b87
mov eax, dword [ebp + 0x7c]
sub eax, edi
je 0x51e2ea16
dec eax
mov byte [ebx], 0x1b
inc ebx
dec eax
jne 0x51df7c01
mov byte [ebx], 7
inc ebx
mov byte [ebx], 0x1a
jmp 0x51df7c00
cmp dword [ebp], edi
je 0x51df7ba0
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 0x84]
cmp word [eax + 0x1322], 5
jne 0x51df7ba0
mov eax, dword [ebp + 0x7c]
cmp eax, edi
je 0x51e2ea92
jle 0x51df7c01
cmp eax, 2
jle 0x51e2ea61
cmp eax, 3
jne 0x51df7c01
mov byte [ebx], 0x1b
jmp 0x51df7c00
mov byte [ebx], 0x1a
inc ebx
cmp eax, 1
je 0x51df7c01
jmp 0x51e2ea8e
cmp dword [ebp], edi
je 0x51df7bb9
cmp dword [ebp + 0x7c], edi
jne 0x51df7bb9
mov byte [ebx], 0x1c
jmp 0x51df7c00
mov byte [ebx], 0xc
inc ebx
mov byte [ebx], 7
inc ebx
mov byte [ebx], 0xb
jmp 0x51df7c00
lea eax, [ebp + 0x74]
push eax
push 1
mov byte [ebx], 8
push edi
inc ebx
call fcn.51df7c0a
add esp, 0xc
add al, 6
jmp 0x51df7bfe
sub eax, 0x16
je 0x51e2ed86
dec eax
je 0x51e2ed7a
dec eax
je 0x51e2ed60
dec eax
je 0x51e2eb69
dec eax
je 0x51e2ebcf
dec eax
je 0x51e2ec46
dec eax
jne 0x51df7c01
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov eax, dword [0x51e8b69c]
test eax, eax
jne 0x51e2ed2d
call esi
cmp ax, 0x411
je 0x51e2ed3a
call esi
cmp ax, 0x404
je 0x51e2ed3a
call esi
cmp ax, 0x412
je 0x51e2ed3a
call esi
cmp ax, 0x804
je 0x51e2ed3a
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x38], eax
lea eax, [ebp + 0x74]
push eax
push 4
push edi
call fcn.51df7c0a
add esp, 0xc
cmp eax, 4
jge 0x51e2ed54
cmp dword [ebp + 0x24], 0
je 0x51e2e5df
mov eax, dword [ebp - 0x38]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x74], eax
jmp 0x51df7787
mov eax, dword [0x51e8b69c]
test eax, eax
jne 0x51e2eb9a
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
cmp ax, 0x411
je 0x51e2eba3
call esi
cmp ax, 0x404
je 0x51e2eba3
call esi
cmp ax, 0x412
je 0x51e2eba3
call esi
cmp ax, 0x804
jne 0x51e2ebd5
jmp 0x51e2eba3
cmp dword [eax + 0x53b8], 0
je 0x51e2ebcf
lea eax, [ebp + 0x74]
push eax
push 2
push edi
call fcn.51df7c0a
add esp, 0xc
cmp eax, 2
jne 0x51e2ec1d
lea eax, [ebp + 0x74]
push eax
push 1
mov byte [ebx], 7
push edi
inc ebx
call fcn.51df7c0a
add esp, 0xc
jmp 0x51e2e7bb
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov eax, dword [0x51e8b69c]
test eax, eax
jne 0x51e2ec00
call esi
cmp ax, 0x411
je 0x51e2ec09
call esi
cmp ax, 0x404
je 0x51e2ec09
call esi
cmp ax, 0x412
je 0x51e2ec09
call esi
cmp ax, 0x804
jne 0x51e2ec4c
jmp 0x51e2ec09
cmp dword [eax + 0x53b8], 0
je 0x51e2ec4c
lea eax, [ebp + 0x74]
push eax
push 2
push edi
call fcn.51df7c0a
add esp, 0xc
cmp eax, 2
je 0x51e2ec2c
cmp dword [ebp + 0x24], 0
je 0x51e2e5df
jmp 0x51df7c01
lea eax, [ebp + 0x74]
push eax
push 1
mov byte [ebx], 7
push edi
inc ebx
call fcn.51df7c0a
add esp, 0xc
add al, 0x15
jmp 0x51df7bfe
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov eax, dword [0x51e8b69c]
test eax, eax
jne 0x51e2eca9
call esi
cmp ax, 0x411
je 0x51e2ecb2
call esi
cmp ax, 0x404
je 0x51e2ecb2
call esi
cmp ax, 0x412
je 0x51e2ecb2
call esi
cmp ax, 0x804
je 0x51e2ecb2
mov eax, dword [ebp + 0x78]
cmp dword [eax + 0x3c], 0x41e
jne 0x51e2eaed
lea eax, [ebp + 0x74]
push eax
push 1
push edi
call fcn.51df7c0a
add esp, 0xc
cmp eax, 1
jne 0x51df7c01
mov byte [ebx], 7
inc ebx
mov byte [ebx], 0x18
jmp 0x51df7c00
cmp dword [eax + 0x53b8], 0
je 0x51e2ec75
cmp dword [ebp], 0
je 0x51e2ed13
mov eax, dword [0x51e8b69c]
test eax, eax
jne 0x51e2eccf
call esi
sub ax, 0x411
neg ax
sbb eax, eax
inc eax
jmp 0x51e2ece0
xor ecx, ecx
cmp dword [eax + 0x53a8], 0x411
sete cl
mov eax, ecx
test eax, eax
jne 0x51e2ecf7
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 0x84]
cmp word [eax + 0x1322], 4
jne 0x51e2ecff
mov byte [ebx], 7
inc ebx
mov byte [ebx], 0x19
inc ebx
lea eax, [ebp + 0x74]
push eax
push 2
push edi
call fcn.51df7c0a
add esp, 0xc
jmp 0x51df7c01
lea eax, [ebp + 0x74]
push eax
push 2
mov byte [ebx], 7
push edi
inc ebx
call fcn.51df7c0a
add esp, 0xc
add al, 0x17
jmp 0x51df7bfe
cmp dword [eax + 0x53b8], 0
je 0x51e2eb2a
lea eax, [ebp + 0x74]
push eax
push 1
mov byte [ebx], 7
push edi
inc ebx
call fcn.51df7c0a
add esp, 0xc
add al, 0x1a
jmp 0x51df7bfe
mov byte [ebx], 8
inc ebx
mov byte [ebx], 0xc
jmp 0x51df7c00
lea eax, [ebp + 0x74]
push eax
push 1
mov byte [ebx], 7
push edi
inc ebx
call fcn.51df7c0a
add esp, 0xc
add al, 0x11
jmp 0x51df7bfe
mov byte [ebx], 7
inc ebx
mov byte [ebx], 0x10
jmp 0x51df7c00
mov byte [ebx], 7
inc ebx
mov byte [ebx], 0xf
jmp 0x51df7c00
mov edi, dword [ebp + 0x74]
xor esi, esi
mov ax, word [edi]
inc edi
inc edi
test ax, ax
je 0x51e2e5d5
cmp ax, 0x5d
lea ecx, [ebp + esi*2 + 0x3c]
mov word [ecx], ax
jne 0x51e2edde
and word [ecx], 0
and dword [ebp + 0x7c], 0
mov ecx, dword [ebp + 0x7c]
push 1
lea eax, [ebp + 0x3c]
push eax
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 0x48]
push dword [eax + ecx*4]
call fcn.51e74385
test eax, eax
jne 0x51e2ede9
inc dword [ebp + 0x7c]
cmp dword [ebp + 0x7c], 8
jl 0x51e2edba
inc esi
cmp esi, 0x14
jl 0x51e2ed97
jmp 0x51e2e5d5
and dword [ebp + 0x28], 0
mov al, byte [ebp + 0x7c]
mov byte [ebx], 9
inc ebx
mov byte [ebx], al
inc ebx
mov dword [ebp + 0x74], edi
mov dword [ebp - 0x28], 1
jmp 0x51df7594
cmp dword [ebp + 0x7c], 0
jne 0x51df752d
add dword [ebp + 0x74], 2
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
test ax, ax
jmp 0x51df7579
cmp dword [ebp + 0x24], 0
je 0x51e2e5df
jmp 0x51df757b
dec ebx
dec ebx
jmp 0x51df7594
cmp ax, si
je 0x51df792e
mov ecx, dword [ecx + 0x84]
cmp ax, word [ecx + 0x44]
je 0x51df792e
jmp 0x51df794d
cmp ax, word [ecx + 4]
je 0x51df7961
cmp ax, word [ecx + 8]
je 0x51df7961
cmp dword [ebp + 0x38], 0
jne 0x51df78d7
mov dword [ebp + 0x38], edi
jmp 0x51df78d7
sub dword [ebp + 0x20], 3
inc edi
inc edi
cmp word [edi], ax
je 0x51e2ee7c
dec edi
dec edi
jmp 0x51df78d7
cmp dword [ebp + 0x38], 0
jne 0x51e2ee97
mov dword [ebp + 0x38], edi
lea eax, [edi + 2]
cmp word [eax], 0
je 0x51df78d7
mov edi, eax
jmp 0x51df78d7
or dword [ebp + 0x10], 1
mov dword [ebp + 0x20], ecx
jmp 0x51df78c0
inc dword [ebp + 0x1c]
jmp 0x51df78d7
cmp dword [ebp + 0x38], 0
jne 0x51e2eec8
mov dword [ebp + 0x38], edi
inc edi
inc edi
mov cx, word [edi]
cmp cx, ax
je 0x51df78d7
test cx, cx
jne 0x51e2eec8
jmp 0x51df78d7
mov eax, 0xff
cmp ecx, eax
jg 0x51e2e5df
cmp dword [ebp + 0xc], eax
jg 0x51e2e5df
jmp 0x51df7977
mov edx, 0xff
cmp eax, edx
jg 0x51e2e5df
cmp ecx, edx
jg 0x51e2e5df
jmp 0x51df79f4
mov eax, dword [ebp + 0x74]
mov byte [ebx], 3
inc ebx
dec dword [ebp + 0x1c]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
mov ax, word [eax]
movzx ecx, ax
cmp ecx, 0x23
je 0x51e2ef6c
cmp ecx, 0x30
je 0x51e2ef6c
mov ecx, dword [ebp + 0x78]
mov di, word [ecx]
cmp di, 0x20
jne 0x51e2ef58
cmp ax, di
je 0x51e2ef6f
mov ecx, dword [ecx + 0x84]
cmp ax, word [ecx + 0x44]
jne 0x51df796a
jmp 0x51e2ef6f
xor ecx, ecx
cmp ax, di
sete cl
mov eax, ecx
test eax, eax
je 0x51df796a
jmp 0x51e2ef6f
dec dword [ebp + 0x1c]
add dword [ebp + 0x38], 2
jmp 0x51e2ef22
cmp dword [ebp - 0x28], 0
je 0x51e2ef85
cmp dword [ebp - 0x24], 0
je 0x51df7a7b
xor eax, eax
jmp 0x51df7a7b
mov eax, dword [ebp + 0x34]
dec eax
je 0x51e2efab
dec eax
je 0x51e2ef9f
dec eax
je 0x51e2efa5
dec eax
jne 0x51e2efaf
mov byte [esi + 4], 0
mov al, byte [esi + 4]
mov byte [esi + 2], al
mov al, byte [esi + 4]
mov byte [esi + 3], al
mov byte [esi + 1], 0
cmp di, cx
je 0x51df7a6f
add dword [ebp + 0x74], 2
mov eax, dword [ebp + 0x34]
dec eax
je 0x51df7a6f
dec eax
je 0x51e2efe1
dec eax
je 0x51e2efd8
dec eax
jne 0x51e2efe8
mov dword [ebp + 0x34], 2
jmp 0x51e2efe8
mov dword [ebp + 0x34], 1
jmp 0x51e2efe8
mov dword [ebp + 0x34], 3
mov eax, dword [ebp + 4]
mov edx, dword [ebp + 0x34]
mov cl, bl
sub cl, al
mov byte [edx + eax], cl
xor ecx, ecx
mov esi, eax
jmp 0x51df74e6