Function at 0x51e0af89
Capabilities:
Identify system language via api

Disassembly:
mov dword [ebp - 0x44], ecx
jmp 0x51e0b00b
test dword [ebp - 0x28], eax
jne 0x51e28860
cmp byte [ebx + 0x45], 0
jne 0x51e28869
mov dword [ebp - 0x40], esi
jmp 0x51e0b085
mov dword [ebp - 0x68], esi
jmp 0x51e0bb53
cmp cl, 4
je 0x51e28dec
xor eax, eax
cmp dword [ebp - 0x2c], eax
jne 0x51e28dfa
mov edi, dword [ebp - 0x1c]
sub edi, esi
sub edi, dword [ebp - 0x24]
cmp cl, 3
je 0x51e28e6d
cmp dword [ebp - 0x58], eax
jne 0x51e28e07
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
js 0x51e28e1b
jmp 0x51e0bcbe
mov eax, dword [0x51e8bb4c]
cmp eax, dword [ebx + 0x40]
je 0x51e289c0
jmp 0x51e0bad3
cmp dword [ebp - 0x70], ecx
mov dword [ebp - 0x90], esi
jne 0x51e28880
jmp 0x51e0b0ad
test byte [ebp - 0x28], 0x80
jne 0x51e0b062
xor esi, esi
inc esi
mov dword [ebp - 0x48], esi
jmp 0x51e0b068
mov eax, 0x51e7e4d4
call fcn.51e038b0
sub esp, 0xc8
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 8]
mov dword [ebp + 8], eax
mov eax, dword [ebx + 0x10]
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov al, byte [ebx + 0x1e]
push esi
mov esi, dword [ebx]
shr al, 2
push edi
mov edi, dword [ebx + 0x38]
and al, 6
cmp esi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x60], ecx
mov byte [ebp - 0x78], al
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x64], 1
je 0x51e043d0
push esi
call fcn.51e03933
mov dword [ebp - 0x44], eax
xor eax, eax
mov al, byte [ebx + 0x1e]
xor ecx, ecx
mov cx, word [ebx + 0x20]
and eax, 1
or eax, ecx
and eax, 7
push eax
push dword [ebp - 0x44]
push esi
push dword [ebx + 0xc]
push 0
call fcn.51e115a0
add esp, 0x14
test eax, eax
mov dword [ebp - 0x58], eax
jne 0x51e287f3
mov eax, dword [0x51e8b69c]
xor ecx, ecx
cmp word [eax + 0x537c], cx
jne 0x51e287f3
cmp byte [ebx + 0x1c], 0
je 0x51e28855
cmp dword [ebp - 0x44], ecx
jne 0x51e0af74
xor esi, esi
mov dword [ebp - 0x48], ecx
inc esi
mov eax, dword [ebp - 0x28]
shr eax, 0xf
and eax, esi
test byte [ebp - 0x27], 1
mov dword [ebp - 0x30], eax
mov eax, 0x4000
je 0x51e05821
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x30], ecx
jne 0x51e0b092
test dword [ebp - 0x28], eax
je 0x51e0b092
mov dword [ebp - 0x40], esi
cmp dword [ebp - 0x40], ecx
je 0x51e0cd24
cmp dword [ebp - 0x48], ecx
mov dword [ebp - 0x70], ecx
jne 0x51e0af1f
mov dword [ebp - 0x90], ecx
xor esi, esi
mov eax, dword [ebx + 0xc]
cmp eax, ecx
mov dword [ebp - 0x5c], eax
jne 0x51e0b0d0
push dword [ebp + 8]
call fcn.51e0acb5
test eax, eax
pop ecx
jne 0x51e28897
mov eax, dword [ebp + 8]
mov dword [ebp - 0x5c], eax
test edi, edi
je 0x51e288c6
cmp dword [edi + 0x2c], 0
je 0x51e288e2
cmp dword [ebp - 0x58], 0
movzx eax, byte [edi + 0x7c]
mov dword [ebp - 0x2c], eax
jne 0x51e28904
cmp byte [ebx + 0x1c], 0
je 0x51e28911
cmp dword [ebp - 0x40], 0
je 0x51e0cd32
cmp dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x34]
mov edi, dword [ecx]
je 0x51e2892b
mov eax, dword [ebp - 0x34]
mov esi, dword [eax + 4]
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x51e0b12e
push eax
push dword [ebp + 8]
call fcn.51e0ad12
pop ecx
pop ecx
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push 0xf00021
sub ecx, esi
push ecx
sub eax, edi
push eax
push esi
push edi
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_PatBlt]
mov edi, dword [ebp - 0x4c]
cmp dword [ebp - 0x90], 0
jne 0x51e0b9ed
test byte [ebp - 0x27], 0x10
jne 0x51e0b9ed
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0xb0], 0
jne 0x51e28c16
cmp dword [ebp - 0xb4], 0
jne 0x51e28c33
cmp dword [ebp - 0xa8], 0
jne 0x51e28c44
cmp dword [ebp - 0x98], 0
jne 0x51e28c55
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
mov eax, dword [edi + 0x24]
add eax, dword [ebx + 0x58]
cmp dword [ebp - 0x48], 0
mov esi, dword [edi]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xa4], esi
je 0x51e28941
push dword [ebx + 0x18]
push esi
push dword [ebp + 8]
call fcn.51e0b9b0
mov eax, dword [ebp - 0x5c]
add esp, 0xc
cmp dword [ebp + 8], eax
jne 0x51e28950
cmp dword [ebp - 0x70], 0
jne 0x51e28962
or dword [ebp - 0x3c], 4
push 1
push dword [ebp + 8]
call fcn.51e0e853
pop ecx
pop ecx
mov esi, dword [ebp - 0x34]
mov eax, dword [ebx + 0x60]
add dword [esi], eax
mov eax, dword [ebx + 0x64]
add dword [esi + 4], eax
mov eax, dword [ebx + 0x68]
sub dword [esi + 8], eax
mov eax, dword [ebx + 0x6c]
sub dword [esi + 0xc], eax
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x50]
lea edi, [ebp - 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
neg eax
sub dword [ebp - 0x20], eax
add dword [ebp - 0x18], eax
neg ecx
sub dword [ebp - 0x24], ecx
add dword [ebp - 0x1c], ecx
lea esi, [ebp - 0x24]
lea edi, [ebp - 0xc8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
cmp dword [ebp - 0x2c], edi
jne 0x51e28988
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x20]
add eax, ecx
cmp dword [ebp - 0x18], eax
jle 0x51e289a1
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
cmp dword [ebp - 0x48], edi
mov dword [ebp - 0x80], eax
je 0x51e0bae0
mov ecx, dword [0x51e8bb94]
cmp ecx, edi
jne 0x51e289a9
test byte [ebp - 0x28], 0x10
jne 0x51e05b3b
mov eax, dword [ebx + 0x14]
cmp eax, 0xffffffff
je 0x51e0bae0
cmp ecx, edi
jne 0x51e289d2
push eax
push dword [ebp + 8]
call fcn.51e03979
pop ecx
pop ecx
xor edi, edi
xor esi, esi
inc esi
test byte [ebp - 0x27], 2
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0x6c], edi
jne 0x51e289ca
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x74], eax
test dword [ebp - 0x28], 0x11000
jne 0x51e28a19
cmp dword [ebp - 0x2c], edi
jne 0x51e289dd
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
lea eax, [eax + eax*2]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x51e28a19
cmp dword [ebp - 0x58], edi
jne 0x51e289e8
cmp byte [ebx + 0x1c], 1
jne 0x51e05847
cmp dword [ebp - 0x30], edi
jne 0x51e289ff
mov dword [ebp - 0x68], edi
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x44]
and dword [ebp - 0x7c], 0
cmp byte [ebx + 0x1c], 4
mov dword [ebp - 0x14], ecx
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x84], ecx
je 0x51e28a80
and dword [ebp - 0x54], 0
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x40]
xor edx, edx
cmp dword [ebp - 0x2c], edx
jne 0x51e28ac5
cmp dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x20]
lea ecx, [esi + eax]
mov dword [ebp - 0x18], ecx
jne 0x51e0bba1
cmp eax, dword [ebp - 0xbc]
jge 0x51e0bbc7
test byte [ebp - 0x28], 1
jne 0x51e28b43
cmp dword [ebp - 0x54], edx
jbe 0x51e0bbe6
mov eax, esi
cdq
push 3
pop ecx
idiv ecx
mov ecx, eax
add ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xbc]
cmp ecx, eax
jl 0x51e0bbec
cmp dword [ebp - 0x6c], 0
jne 0x51e28b5e
test byte [ebp - 0x27], 0x10
jne 0x51e28b75
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x5c], eax
jmp 0x51e0b167
mov eax, dword [ebp - 0xbc]
cmp dword [ebp - 0x18], eax
jg 0x51e28b56
xor eax, eax
cmp dword [ebp - 0x70], eax
jne 0x51e0bc07
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x84]
jae 0x51e0bbc7
cmp dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x48], ecx
jne 0x51e28c60
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0x5c]
lea eax, [ebp - 0x48]
push dword [ebp - 0x4c]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x84]
push dword [ebp - 0x14]
call fcn.51e16249
mov edi, dword [ebp - 0x14]
add esp, 0x1c
mov esi, dword [ebp - 0x48]
test esi, esi
mov dword [ebp - 0x9c], eax
jbe 0x51e28ceb
cmp dword [ebp - 0x70], 0
jne 0x51e28d18
test byte [ebp - 0x27], 0x10
jne 0x51e28d46
mov edx, eax
sub edx, edi
sar edx, 1
cmp edx, 1
mov dword [ebp - 0x38], edx
jle 0x51e0bc7c
cmp word [eax - 2], 0xa
je 0x51e28d5d
xor ecx, ecx
cmp byte [ebx + 0x1c], 4
je 0x51e28d7d
mov eax, dword [0x51e8b69c]
cmp word [eax + 0x537c], cx
jne 0x51e28d97
cmp word [eax + 0x53a4], cx
jne 0x51e28d97
cmp dword [ebp - 0x58], ecx
jne 0x51e28db3
mov cl, byte [ebx + 0x1c]
cmp cl, 1
jne 0x51e0584f
xor edi, edi
cmp dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x20]
jne 0x51e0bcca
mov eax, dword [ebp - 0x24]
add edi, eax
xor eax, eax
cmp dword [ebp - 0xb8], eax
mov dword [ebp - 0xd4], edi
je 0x51e28e29
mov dword [ebp - 0x88], edi
cmp dword [ebp - 0x90], eax
mov dword [ebp - 0xb8], eax
je 0x51e0bd72
mov eax, 0x7d00
cmp dword [ebp - 0x38], eax
ja 0x51e28e3a
and dword [ebp - 0x30], 0
cmp dword [ebp - 0x7c], 0
jne 0x51e28e42
mov eax, dword [0x51e8a120]
xor ecx, ecx
cmp dword [ebp - 0x2c], ecx
jne 0x51e28f29
cmp eax, ecx
je 0x51e0bd32
mov eax, dword [eax + 0xb8]
cmp eax, ecx
jne 0x51e28f8a
cmp dword [ebp - 0x58], ecx
jne 0x51e28fae
or byte [ebp - 0x39], 0x40
cmp dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x34]
jne 0x51e0bd4a
lea eax, [ebp - 0x24]
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
push dword [ebp - 0x38]
push dword [ebp - 0x14]
push eax
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x74]
add eax, ecx
push eax
push edi
push dword [ebp + 8]
call dword [0x51e8b55c]
xor esi, esi
jne 0x51e29057
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
cmp eax, dword [ebp - 0x94]
sete cl
cmp dword [ebp - 0x2c], 0
lea eax, [eax + ecx*2]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x40]
jne 0x51e291cd
add dword [ebp - 0x20], eax
inc dword [ebp - 0x54]
jmp 0x51e0bb7a
test dword [ebp - 0x28], eax
jne 0x51e28878
jmp 0x51e0b09b
test esi, esi
jne 0x51e2891a
jmp 0x51e0b150
push 0x94
call fcn.51e01c0c
movzx eax, al
pop ecx
mov ecx, dword [0x51e8b69c]
push 0x96
mov dword [ecx + 0x5380], eax
call fcn.51e01c0c
movzx eax, al
pop ecx
mov ecx, dword [0x51e8b69c]
mov dword [ecx + 0x5370], eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x60]
push eax
movzx eax, byte [ebp - 0x78]
push eax
xor eax, eax
mov al, byte [ebx + 0x1e]
and eax, 0xffffff03
push eax
xor eax, eax
mov al, byte [ebx + 0x1c]
push eax
push esi
call fcn.51e579f7
add esp, 0x18
xor ecx, ecx
jmp 0x51e0b04f
mov al, byte [ebp - 0x64]
mov byte [ebx + 0x1c], al
jmp 0x51e0b059
cmp dword [ebx + 0x50], ecx
jne 0x51e0582a
cmp byte [ebx + 0x44], 0
je 0x51e0b082
jmp 0x51e05834
mov dword [ebp - 0x70], esi
jmp 0x51e0af1f
cmp dword [ebp - 0x30], ecx
jne 0x51e0b0ad
cmp dword [ebx + 0x50], ecx
jg 0x51e0b0af
jmp 0x51e0b0ad
push dword [ebp + 8]
call fcn.51e7383b
cmp dword [0x51e8bab8], 0
mov eax, dword [eax + 4]
pop ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], 1
jne 0x51e0b0d0
mov dword [ebp - 0x3c], SysStringLen
jmp 0x51e0b0d0
push edi
push dword [ebp - 0x30]
push dword [ebp - 0x5c]
push dword [ebx + 0x18]
call fcn.51e0e5da
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x4c], edi
jmp 0x51e0b0d8
mov eax, dword [ebp - 0x28]
and eax, 0x2000
neg eax
sbb eax, eax
and eax, 5
inc eax
push eax
push edi
push dword [ebp - 0x5c]
call fcn.51e17473
add esp, 0xc
jmp 0x51e0b0e2
test eax, eax
je 0x51e0b0fd
jmp 0x51e0b0f3
mov byte [ebx + 0x1c], 1
jmp 0x51e0b0fd
test eax, eax
jne 0x51e0b107
mov ecx, dword [ebp - 0x34]
mov edi, dword [ecx + 8]
sub edi, dword [ebx + 0x50]
test eax, eax
je 0x51e0b116
mov eax, dword [ebp - 0x34]
mov esi, dword [eax + 0xc]
sub esi, dword [ebx + 0x54]
jmp 0x51e0b11c
test byte [ebp - 0x27], 0x10
je 0x51e0ba23
jmp 0x51e0ba08
push dword [ebx + 0x18]
push esi
push eax
call fcn.51e0b9b0
add esp, 0xc
jmp 0x51e0ba23
or dword [ebp - 0x3c], 6
cmp dword [0x51e8bb94], 0
je 0x51e28983
push dword [0x51e8bb38]
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_SetBkColor]
jmp 0x51e0ba3d
push dword [ebx + 0x40]
jmp 0x51e28975
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x40]
cmp dword [ebp - 0x24], eax
jl 0x51e28996
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
jmp 0x51e0baa3
mov dword [ebp - 0x18], eax
jmp 0x51e0ba9d
cmp dword [ebx + 0x14], 0xffffffff
jne 0x51e0bab9
mov eax, dword [0x51e8bb3c]
mov dword [ebx + 0x14], eax
jmp 0x51e0bab9
mov eax, dword [0x51e8bb5c]
jmp 0x51e0bad3
mov dword [ebp - 0x74], edi
jmp 0x51e0bb05
push dword [0x51e8bb3c]
jmp 0x51e0bad4
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x24]
jmp 0x51e0bb21
cmp dword [ebp - 0x2c], edi
jne 0x51e0bb3d
cmp dword [ebp - 0x64], esi
je 0x51e0bb3d
jmp 0x51e05847
cmp dword [ebp - 0x58], edi
je 0x51e28a0d
cmp dword [ebp - 0x2c], edi
je 0x51e0bb50
mov dword [ebp - 0x68], 7
jmp 0x51e0bb53
mov eax, dword [0x51e8b69c]
cmp eax, edi
mov dword [ebp - 0x68], 3
jne 0x51e28a55
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
cmp ax, 0x411
je 0x51e28a6a
call esi
cmp ax, 0x404
je 0x51e28a6a
call esi
cmp ax, 0x412
je 0x51e28a6a
call esi
cmp ax, 0x804
jne 0x51e0bb53
jmp 0x51e28a6a
cmp dword [eax + 0x53bc], edi
jne 0x51e28a6a
test byte [eax + 0x53b6], 0x3c
je 0x51e0bb53
test byte [ebp - 0x26], 2
je 0x51e0bb53
mov dword [ebp - 0x68], 0x13
jmp 0x51e0bb53
cmp eax, 1
jle 0x51e0bb76
shl eax, 2
push eax
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
test edi, edi
mov dword [ebp - 0x6c], edi
jne 0x51e28aa3
call fcn.51e735ff
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
mov dword [ebp - 0x7c], eax
jne 0x51e0bb76
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
and dword [ebp - 0x6c], 0
jmp 0x51e0bb76
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
sub eax, esi
cmp dword [ebp - 0x54], edx
mov dword [ebp - 0x24], eax
jne 0x51e28ae0
cmp ecx, dword [ebp - 0xc8]
jle 0x51e0bbc7
test byte [ebp - 0x28], 1
je 0x51e28b0a
sub ecx, esi
cmp ecx, dword [ebp - 0xc8]
jge 0x51e28b0a
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x14]
jne 0x51e0bbc7
add eax, 2
mov dword [ebp - 0x14], eax
jmp 0x51e0bbc7
cmp dword [ebp - 0x54], edx
jbe 0x51e28b2c
mov eax, esi
cdq
push 3
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
mov eax, dword [ebp - 0xc8]
cmp ecx, eax
jle 0x51e0bbc7
jmp 0x51e28b32
mov eax, dword [ebp - 0xc8]
cmp dword [ebp - 0x24], eax
jge 0x51e0bbf5
mov dword [ebp - 0x24], eax
jmp 0x51e0bbf5
add eax, esi
cmp eax, dword [ebp - 0xbc]
jg 0x51e0bbc7
jmp 0x51e0bbab
mov dword [ebp - 0x18], eax
jmp 0x51e0bbf5
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x51e0bbd1
cmp dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x8c]
je 0x51e28bbf
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
sub edx, ecx
cmp eax, edx
jge 0x51e28b92
add eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x88]
mov edx, eax
sub edx, ecx
mov ecx, dword [ebp - 0x54]
add dword [ebp - 0x18], edx
imul ecx, esi
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x1c], eax
sub eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [edi]
cmp dword [ebp - 0x24], eax
jg 0x51e28bfb
mov dword [ebp - 0x24], eax
jmp 0x51e28bfb
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
sub edx, ecx
cmp eax, edx
jge 0x51e28bd0
add eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x24], eax
mov edx, eax
mov eax, dword [ebp - 0x54]
imul eax, esi
sub edx, ecx
add dword [ebp - 0x1c], edx
mov ecx, dword [edi + 4]
add eax, ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], eax
mov ecx, dword [edi + 0xc]
cmp eax, ecx
jl 0x51e28bfb
mov dword [ebp - 0x18], ecx
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x51e28c07
mov ecx, dword [ebp - 0x54]
mov dword [eax], ecx
mov edi, dword [ebp - 0x34]
lea esi, [ebp - 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x51e0bbdb
mov eax, dword [0x51e8b69c]
push 0
push dword [ebp - 0xb0]
push dword [eax + 0x68]
call fcn.51e0507d
add esp, 0xc
jmp 0x51e0b178
push dword [ebp - 0xb4]
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x51e0b185
push dword [ebp - 0xa8]
call fcn.51e1854d
pop ecx
jmp 0x51e0b192
push dword [ebp - 0x98]
call fcn.51e0d896
cmp dword [ebp - 0x2c], eax
jne 0x51e0bc16
push 3
pop esi
push esi
push esi
push dword [ebp - 0xa4]
push dword [ebp + 8]
call fcn.51e037d4
mov edi, dword [ebp - 0x5c]
add esp, 0x10
cmp dword [ebp + 8], edi
je 0x51e28c98
push esi
push esi
push dword [ebp - 0xa4]
push edi
call fcn.51e037d4
add esp, 0x10
lea eax, [ebp - 0xa0]
push eax
xor eax, eax
mov al, byte [ebx + 0x20]
and eax, 0xffffff07
push eax
mov al, byte [ebx + 0x1e]
push dword [ebp - 0x78]
and al, 3
neg al
sbb eax, eax
and eax, 0xffffff80
add eax, 0x80
or eax, dword [ebp - 0x60]
push eax
lea eax, [ebp - 0xac]
push eax
push edi
push dword [ebp - 0x4c]
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x68]
push dword [ebp - 0x84]
push edi
call fcn.51e59871
add esp, 0x2c
jmp 0x51e0bc3e
lea ecx, [edi + 2]
cmp eax, ecx
jne 0x51e0bc4f
mov cx, word [edi]
cmp cx, 0xd
je 0x51e0bc4f
cmp cx, 0xa
je 0x51e0bc4f
mov esi, dword [ebp - 0x80]
mov dword [ebp - 0x48], esi
jmp 0x51e0bc4f
cmp eax, dword [ebp - 0x84]
jne 0x51e0bc59
cmp dword [ebp - 0x2c], 0
je 0x51e28d38
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x24], ecx
jmp 0x51e0bc59
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x18], ecx
jmp 0x51e0bc59
cmp dword [ebp - 0x8c], esi
ja 0x51e0bc63
mov dword [ebp - 0x8c], esi
jmp 0x51e0bc63
lea ecx, [edx - 1]
test ecx, ecx
jle 0x51e0bc7c
cmp word [eax - 4], 0xd
jne 0x51e0bc7c
dec edx
dec edx
mov dword [ebp - 0x38], edx
jmp 0x51e0bc7c
cmp edx, ecx
jle 0x51e0bc88
cmp word [edi + edx*2 - 2], 0x20
jne 0x51e0bc88
dec edx
mov dword [ebp - 0x38], edx
jmp 0x51e28d7d
cmp dword [ebp - 0x2c], ecx
je 0x51e0bca7
cmp byte [ebx + 0x1c], 0
jne 0x51e0bca7
mov byte [ebx + 0x1c], 1
jmp 0x51e0bca7
cmp dword [ebp - 0x2c], ecx
jne 0x51e0bcb0
cmp dword [ebp - 0x64], 5
jne 0x51e28ddb
cmp esi, dword [ebp - 0x80]
jbe 0x51e0bcb0
cmp dword [ebp - 0x60], ecx
je 0x51e0bcb0
mov dword [ebp - 0x64], 3
cmp dword [ebp - 0x64], 1
jne 0x51e0bcb0
xor edi, edi
jmp 0x51e0bcc7
cmp edx, 1
jg 0x51e0bcbc
jmp 0x51e05858
mov edi, dword [ebp - 0x18]
sub edi, esi
sub edi, dword [ebp - 0x20]
jmp 0x51e0586b
cmp dword [ebp - 0x2c], eax
jne 0x51e0587d
cmp dword [ebp - 0x64], 3
je 0x51e28e6d
jmp 0x51e0587d
cmp cl, 5
jne 0x51e0bcbe
jmp 0x51e0bcbc
cmp dword [ebp - 0x88], edi
jl 0x51e0bce6
jmp 0x51e0bce0
mov dword [ebp - 0x38], eax
jmp 0x51e0bd02
cmp byte [ebx + 0x1c], 4
jne 0x51e0bd10
cmp dword [ebp - 0x38], 1
jle 0x51e0bd10
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x51e28e7d
cmp dword [ebp - 0x50], eax
je 0x51e28e75
mov eax, dword [ebp - 0x34]
mov esi, dword [eax + 0xc]
sub esi, dword [eax + 4]
jmp 0x51e28e92
sub edi, dword [ebx + 0x4c]
jmp 0x51e0bcbe
mov esi, dword [ebp - 0x18]
sub esi, dword [ebp - 0x20]
jmp 0x51e28e92
cmp dword [ebp - 0x50], eax
je 0x51e28e8c
mov eax, dword [ebp - 0x34]
mov esi, dword [eax + 8]
sub esi, dword [eax]
jmp 0x51e28e92
mov esi, dword [ebp - 0x1c]
sub esi, dword [ebp - 0x24]
mov eax, dword [0x51e8b69c]
cmp word [eax + 0x53a4], 0
jne 0x51e0bd10
lea eax, [ebp - 0xd0]
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x14]
push dword [ebp + 8]
call fcn.51e4e47a
cmp esi, dword [ebp - 0xd0]
jle 0x51e0bd10
sub esi, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x38]
mov eax, esi
dec ecx
cdq
idiv ecx
xor esi, esi
mov edi, eax
mov dword [ebp - 0x30], edx
cmp esi, dword [ebp - 0x38]
jge 0x51e28f18
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0x14]
push 1
lea eax, [eax + esi*2]
push eax
push dword [ebp + 8]
call fcn.51e4e47a
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x7c]
add eax, edi
cmp dword [ebp - 0x30], 0
lea ecx, [ecx + esi*4]
mov dword [ecx], eax
je 0x51e28f15
inc eax
dec dword [ebp - 0x30]
mov dword [ecx], eax
inc esi
jmp 0x51e28edc
mov eax, dword [ebp - 0x7c]
mov edi, dword [ebp - 0xd4]
mov dword [ebp - 0x30], eax
jmp 0x51e0bd10
cmp eax, ecx
je 0x51e28f61
mov eax, dword [eax + 0xb8]
cmp eax, ecx
je 0x51e28f61
cmp dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x34]
jne 0x51e28f42
lea ecx, [ebp - 0x24]
push dword [ebp - 0x30]
push dword [ebp - 0x38]
push dword [ebp - 0x14]
push ecx
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x74]
push edi
push ecx
push dword [ebp + 8]
call eax
jmp 0x51e0bd6a
or byte [ebp - 0x39], 0x40
cmp dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x34]
jne 0x51e28f70
lea eax, [ebp - 0x24]
push dword [ebp - 0x30]
push dword [ebp - 0x38]
push dword [ebp - 0x14]
push eax
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x74]
push edi
push eax
jmp 0x51e0bd61
cmp dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x34]
jne 0x51e28f95
lea ecx, [ebp - 0x24]
push dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
push dword [ebp - 0x38]
push dword [ebp - 0x14]
push ecx
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x74]
add ecx, edx
push ecx
push edi
jmp 0x51e28f57
mov esi, dword [ebp - 0x38]
cmp esi, ecx
je 0x51e0bd3b
mov al, byte [ebx + 0x1c]
cmp al, 4
jne 0x51e28fd8
cmp dword [ebp - 0x50], ecx
je 0x51e28fd8
mov edx, dword [0x51e8b69c]
cmp word [edx + 0x53a4], cx
je 0x51e0bd3b
mov edx, dword [ebp - 0x4c]
sub al, 4
neg al
mov dword [ebp - 0xa0], edx
sbb eax, eax
and eax, 0xffffffc0
add eax, 0x40
or dword [ebp - 0x60], eax
mov eax, 0x3e7
cmp esi, eax
jl 0x51e28ffb
mov esi, eax
cmp dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x34]
jne 0x51e29006
lea eax, [ebp - 0x24]
xor ecx, ecx
mov cl, byte [ebx + 0x20]
and ecx, 0xffffff07
push ecx
push dword [ebp - 0x78]
lea ecx, [ebp - 0xa0]
push ecx
mov cl, byte [ebx + 0x1e]
and cl, 3
neg cl
sbb ecx, ecx
and ecx, 0xffffff80
add ecx, 0x80
or ecx, dword [ebp - 0x60]
push ecx
push dword [ebp - 0x14]
push 0
push esi
push dword [ebp - 0x14]
push eax
push dword [ebp - 0x3c]
push dword [ebp - 0x20]
push edi
push dword [ebp - 0x5c]
push dword [ebp + 8]
call fcn.51e58c03
add esp, 0x38
jmp 0x51e0bd6a
cmp esi, dword [ebp - 0x14]
jb 0x51e0bd72
cmp esi, dword [ebp - 0x9c]
jae 0x51e0bd72
test byte [ebp - 0x28], 0x10
je 0x51e29079
mov eax, dword [0x51e8bae0]
jmp 0x51e29088
push 0
push dword [ebx + 0x14]
push 1
call fcn.51e5eaa1
add esp, 0xc
push 2
push 2
push eax
push dword [ebp + 8]
call fcn.51e037d4
mov eax, dword [ebp - 0x48]
add esp, 0x10
cmp dword [ebp - 0x58], 0
mov dword [ebp - 0x30], eax
je 0x51e29105
cmp dword [ebp - 0x2c], 0
jne 0x51e29105
mov eax, 0x3e7
cmp dword [ebp - 0x38], eax
jge 0x51e290b7
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov cl, byte [ebx + 0x20]
and ecx, 0xffffff07
push ecx
lea ecx, [ebp - 0x44]
push ecx
lea ecx, [ebp - 0xa0]
push ecx
mov cl, byte [ebx + 0x1e]
push dword [ebp - 0x78]
and cl, 3
neg cl
sbb ecx, ecx
sub esi, dword [ebp - 0x14]
and ecx, 0xffffff80
add ecx, 0x80
or ecx, dword [ebp - 0x60]
sar esi, 1
push ecx
push dword [ebp - 0x14]
push esi
push eax
push dword [ebp - 0x14]
push dword [ebp + 8]
call fcn.51e58b46
add esp, 0x28
movsx eax, ax
jmp 0x51e2914f
lea eax, [ebp - 0xac]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x30]
push dword [ebp - 0x4c]
push eax
push 3
push esi
push dword [ebp - 0x14]
call fcn.51e16249
xor eax, eax
mov ax, word [esi]
add esp, 0x1c
push eax
mov eax, dword [ebp - 0x28]
and eax, 0x2000
neg eax
sbb eax, eax
and eax, 5
inc eax
push eax
push dword [ebp + 8]
push dword [ebp - 0x4c]
call fcn.51e40176
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x30]
add esp, 0x10
cmp dword [ebp - 0x2c], 0
lea ecx, [edi + eax]
je 0x51e29186
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
sub eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x18]
sub edx, ecx
dec eax
cmp dword [ebp - 0x44], edx
jl 0x51e2916f
mov dword [ebp - 0x44], edx
cmp eax, dword [ebp - 0x24]
jle 0x51e0bd72
push 0xf00021
push dword [ebp - 0x44]
push 1
push ecx
push eax
jmp 0x51e291bf
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x20]
mov eax, dword [eax + 0x10]
lea eax, [eax + edx + 1]
mov edx, dword [ebp - 0x1c]
sub edx, ecx
cmp dword [ebp - 0x44], edx
jl 0x51e291a0
mov dword [ebp - 0x44], edx
cmp eax, dword [ebp - 0x18]
jge 0x51e0bd72
cmp dword [ebp - 0x44], 0
jle 0x51e0bd72
push 0xf00021
push 1
push dword [ebp - 0x44]
push eax
push ecx
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_PatBlt]
jmp 0x51e0bd72
sub dword [ebp - 0x1c], eax
jmp 0x51e0bd99