Function at 0x40fc50
Capabilities:
Check for time delay via gettickcount
Encrypt data using speck

Disassembly:
sub esp, 0x104
push ebx
push ebp
push esi
mov eax, 0x7fff
mov dword [esp + 0x24], edx
push edi
mov di, word [esp + 0x124]
mov esi, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x14], esi
movzx ebp, di
cmp eax, 0xffc3d44f
je 0x40fc99
cmp eax, 0xffc3d44e
je 0x40fc99
mov byte [esp + 0x13], 0
cmp eax, 0xffc3d44d
jne 0x40fc9e
mov byte [esp + 0x13], 1
mov ecx, dword [0x4faa90]
mov ebx, dword [esp + 0x120]
test ecx, ecx
jne 0x40fcbc
lea edx, [esp + 0x40]
mov dword [esp + 0x18], edx
jmp 0x40fd80
mov eax, dword [0x4fab04]
imul esi, eax, 0xd4
inc eax
mov dword [0x4fab04], eax
add esi, ecx
mov dword [esp + 0x18], esi
cmp eax, dword [0x4f8178]
jl 0x40fce5
mov dword [0x4fab04], 0
mov eax, dword [esp + 0x128]
mov byte [esi], bl
mov byte [esi + 6], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [0x4fab00], eax
sub ecx, dword [0x4fd8f8]
mov dword [0x4fd8f8], eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x4f20e0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x4f1fc4]
movss dword [esi + 8], xmm0
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov edx, dword [esp + 0x18]
mov esi, eax
lea ecx, [edx + 0xc]
test esi, esi
je 0x40fd69
cmp esi, dword [0x4faafc]
je 0x40fd62
push esi
push ecx
push 0x418
push dword [0x4faa80]
call dword [sym.imp.USER32.dll_PostMessageW]
mov edx, dword [esp + 0x18]
jmp 0x40fd76
xor eax, eax
mov word [ecx], ax
jmp 0x40fd76
mov dword [ecx], 0x2f004e
mov dword [ecx + 4], 0x41
mov dword [0x4faafc], esi
mov esi, dword [esp + 0x14]
cmp bl, 0xe7
jne 0x40fdda
mov ecx, dword [esp + 0x11c]
push 0x7fff
push edx
mov ax, word [ecx + 4]
mov word [edx + 2], ax
mov eax, 0x55
mov word [edx + 4], ax
mov edx, dword [esp + 0x134]
push edx
push dword [esp + 0x134]
push 0
push 0xe7
push ecx
mov ecx, esi
push dword [esp + 0x134]
mov edx, dword [esp + 0x48]
call fcn.004117f0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
mov al, bl
mov word [edx + 2], di
add al, 0x64
mov cl, 3
cmp cl, al
mov esi, 0x20
sbb eax, eax
and eax, ebp
mov ebp, dword [0x4fd940]
movzx eax, ax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4faa94]
jne 0x40fe45
mov dl, byte [esp + 0x130]
and dl, 1
jne 0x40fe29
mov al, byte [esp + 0x128]
movzx ecx, bl
xor al, 1
shl al, 7
mov byte [ecx + 0x4fb478], al
mov ecx, dword [esp + 0x128]
cmp byte [esp + 0x13], 0
je 0x40fecf
mov eax, 0x69
jmp 0x40fedc
mov ecx, dword [esp + 0x130]
mov edx, ecx
movzx edi, bl
shr edx, 4
and edx, 0xffffff01
mov dword [esp + 0x34], edx
lea eax, [edi + edi*4]
cmp byte [ebp + eax*4 + 8], 0
jne 0x40fe29
test cl, 0x10
jne 0x40fe29
cmp bl, 0xa0
je 0x40fe77
cmp bl, 0xa1
jne 0x40fe9c
mov ecx, dword [esp + 0x128]
test cl, cl
jne 0x40fe9c
cmp bl, 0xa0
mov dword [esp + 0x38], 0x10
mov eax, esi
cmove eax, dword [esp + 0x38]
test byte [0x4fab2e], al
jne 0x40fe30
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x128]
mov ebp, dword [0x4fd940]
mov edx, dword [esp + 0x34]
mov dword [0x4fd900], eax
mov dword [0x4fd8fc], eax
mov al, cl
xor al, 1
shl al, 7
mov byte [edi + 0x4fb478], al
jmp 0x40fe30
mov eax, 0x61
test dl, dl
cmovne esi, eax
movzx eax, si
cmp byte [0x4fab2a], 0
mov edi, dword [esp + 0x18]
mov word [edi + 4], ax
je 0x40ff17
cmp bl, 0x5b
je 0x40fef7
cmp bl, 0x5c
jne 0x40ff17
test cl, cl
jne 0x40ff17
mov edx, dword [esp + 0x12c]
push 0
push closesocket
push 0x7fff
push edi
push edx
push 0
jmp 0x411641
cmp byte [0x4fc37e], 0
mov esi, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edx, dword [sym.imp.USER32.dll_FindWindowW]
je 0x40ffcb
cmp bl, 0x1b
jne 0x40ffcb
test cl, cl
jne 0x40ffcb
push 0
push str.32771
call edx
test eax, eax
je 0x40ffbf
push 0
push eax
call esi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x40ffb9
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
xor ecx, ecx
call fcn.0041bd60
mov dl, byte [0x4fac55]
mov ecx, 1
push 0xffc3d44d
shr dl, 3
push 0
and dl, 1
push 0
push 0
or dl, 0xa4
call fcn.0041bd60
mov edx, dword [esp + 0x14c]
add esp, 0x20
push 0
push closesocket
push 0x7fff
push edi
push edx
push 0
push ecx
push 0x1b
jmp 0x411643
mov esi, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ebp, dword [0x4fd940]
mov edx, dword [sym.imp.USER32.dll_FindWindowW]
mov eax, dword [esp + 0x1c]
movzx eax, ax
lea ecx, [eax + eax*4]
mov eax, dword [0x4fd944]
lea edi, [eax + ecx*4]
mov eax, dword [esp + 0x14]
mov cl, byte [edi + 0x13]
mov byte [esp + 0x12], cl
cmp eax, dword [0x4faa98]
jne 0x40fff4
test cl, cl
jne 0x410007
movzx eax, bl
lea eax, [eax + eax*4]
lea edi, [eax*4]
mov eax, dword [esp + 0x14]
add edi, ebp
cmp byte [esp + 0x13], 0
je 0x41007c
mov ecx, dword [esp + 0x12c]
mov eax, dword [esp + 0x128]
cmp ecx, 0xffc3d44e
jne 0x410042
test al, al
je 0x410042
cmp dword [0x4fb5bc], edi
jne 0x410042
mov byte [edi + 0xd], 0
mov byte [edi + 0x10], 0
mov dword [0x4fb5bc], 0
mov ebp, dword [esp + 0x18]
push 0x7fff
push ebp
push ecx
push eax
mov ecx, dword [esp + 0x24]
push dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
push ebx
push dword [esp + 0x134]
push dword [esp + 0x134]
call fcn.004117f0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
mov ecx, dword [esp + 0x128]
test cl, cl
jne 0x41009a
mov byte [edi + 0x11], cl
mov ecx, 0x7fff
mov word [edi + 4], cx
mov ecx, dword [esp + 0x128]
cmp eax, dword [0x4faa94]
jne 0x410120
test bl, bl
jne 0x4100e6
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x12c]
push 0x7fff
push ebp
push edx
mov edx, dword [esp + 0x34]
push ecx
push dword [esp + 0x2c]
mov ecx, eax
push 0
push dword [esp + 0x134]
push dword [esp + 0x134]
call fcn.004117f0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
cmp bl, 1
je 0x4100f0
cmp bl, 2
jne 0x410120
cmp dword [0x4faa50], 0
jne 0x41014e
push 0
push str.32768
call edx
test eax, eax
je 0x410113
push 0
push eax
call esi
cmp eax, dword [0x4fcbf0]
je 0x410147
mov ebp, dword [0x4fd940]
mov ecx, dword [esp + 0x128]
mov eax, dword [0x4fb5bc]
mov esi, dword [esp + 0x14]
test eax, eax
je 0x410187
cmp eax, edi
je 0x410187
test cl, cl
jne 0x410187
cmp esi, dword [0x4faa98]
jne 0x410171
xor eax, eax
cmp byte [edi + 8], al
sete al
jmp 0x41017a
mov ecx, dword [esp + 0x128]
mov ebp, dword [esp + 0x18]
mov al, cl
mov edx, dword [esp + 0x12c]
xor al, 1
push 0x7fff
push ebp
push edx
mov byte [edi + 0x10], 0
mov byte [edi + 0xd], al
push ecx
jmp 0x41004e
mov eax, dword [0x4fb5bc]
movzx eax, byte [eax + 8]
test eax, eax
je 0x410187
mov eax, dword [0x4fb5bc]
mov byte [eax + 0x12], 1
cmp byte [edi + 9], 0
jne 0x4101b4
cmp byte [edi + 0xa], 0
jne 0x4101b4
mov ebp, dword [esp + 0x18]
mov al, cl
mov edx, dword [esp + 0x12c]
xor al, 1
push 0x7fff
push ebp
push edx
push ecx
mov byte [edi + 0xd], al
mov ecx, esi
jmp 0x410052
mov dword [esp + 0x34], 0
mov edx, 0x7fff
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], edx
test cl, cl
je 0x4101fb
mov dl, byte [edi + 0x10]
mov dh, byte [edi + 0xd]
movzx eax, word [edi + 4]
mov byte [esp + 0x11], dh
mov byte [esp + 0x10], dl
mov edx, 0x7fff
mov byte [edi + 0x10], 0
cmp ax, dx
je 0x41020b
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
mov word [edi + 4], dx
jmp 0x41020b
mov al, byte [esp + 0x11]
mov byte [esp + 0x11], al
mov al, byte [esp + 0x11]
mov byte [esp + 0x10], al
mov al, cl
xor cl, cl
xor al, 1
mov byte [edi + 0xd], al
cmp esi, dword [0x4faa98]
jne 0x410285
cmp byte [edi + 8], cl
je 0x4102a7
cmp byte [ebp + 0xcb5], cl
jne 0x410239
cmp byte [ebp + 0xcc9], cl
jne 0x410239
xor al, al
jmp 0x41023b
mov al, 1
cmp byte [ebp + 0xcdd], 0
mov byte [ebp + 0x161], al
jne 0x410257
cmp byte [ebp + 0xcf1], 0
jne 0x410257
xor al, al
jmp 0x410259
mov al, 1
cmp byte [ebp + 0xc8d], 0
mov byte [ebp + 0x175], al
jne 0x41027b
cmp byte [ebp + 0xca1], 0
jne 0x41027b
xor al, al
mov byte [ebp + 0x14d], al
jmp 0x4102a7
mov al, 1
mov byte [ebp + 0x14d], al
jmp 0x4102a7
cmp dword [0x4faa98], 0
jne 0x4102a7
mov cl, 1
call fcn.0041e650
mov ebp, dword [0x4fd940]
mov cl, 1
mov byte [0x4fac54], al
mov byte [0x4fac55], al
mov eax, dword [edi]
test eax, eax
je 0x4102b7
cmp dword [eax], 7
mov byte [esp + 0x13], 1
je 0x4102bc
mov byte [esp + 0x13], 0
test cl, cl
jne 0x4102cd
mov cl, 1
call fcn.0041e650
mov ebp, dword [0x4fd940]
mov cl, byte [edi + 9]
mov eax, dword [esp + 0x128]
test cl, cl
je 0x41056b
test al, al
jne 0x41056b
mov eax, dword [0x4fb5bc]
test eax, eax
je 0x4102fe
cmp byte [edi + 0xa], 0
je 0x4102fe
cmp edi, eax
jne 0x410564
cmp cl, 1
jne 0x4103b0
cmp byte [esp + 0x12], 0
je 0x410317
mov eax, dword [esp + 0x1c]
movzx ecx, ax
jmp 0x41031a
movzx ecx, bl
xor edx, edx
movzx eax, cx
cmp byte [esp + 0x12], dl
mov dword [esp + 0x2c], ecx
cmovne edx, eax
movzx ecx, cl
xor eax, eax
cmp byte [esp + 0x12], al
push 0
cmovne ecx, eax
call fcn.0041e860
mov ch, al
xor edx, edx
xor eax, eax
mov byte [esp + 0x27], ch
add esp, 4
mov dword [esp + 0x38], edx
cmp ax, word [0x4fb5ec]
jae 0x4104a3
mov cl, byte [0x4fa944]
cmp byte [esp + 0x12], 0
mov eax, dword [0x4fb5dc]
mov ebp, dword [eax + edx*4]
je 0x410376
movzx eax, word [ebp + 0xa]
jmp 0x41037a
movzx eax, byte [ebp + 0x11]
cmp dword [esp + 0x2c], eax
je 0x410389
test byte [ebp + 0xe], ch
je 0x410485
cmp word [ebp + 6], 0
je 0x410420
cmp byte [ebp + 0x19], 0
je 0x410485
test cl, cl
jne 0x410485
mov ebp, dword [0x4fd940]
mov esi, dword [esp + 0x14]
xor dl, dl
cmp edi, dword [0x4fb5bc]
je 0x4103c3
mov dword [0x4fb5bc], edi
mov byte [edi + 0x12], dl
cmp byte [edi + 0xa], 0
je 0x4104f1
mov al, byte [edi + 8]
mov cl, byte [0x4fac54]
test al, al
je 0x4103de
not al
and cl, al
test cl, cl
jne 0x4103f0
test dl, dl
jne 0x4103f0
test byte [edi + 0xc], 1
je 0x4104f1
cmp esi, dword [0x4faa98]
jne 0x4104aa
cmp byte [esp + 0x12], 0
je 0x4104aa
mov eax, dword [esp + 0x1c]
movzx ecx, cl
movzx eax, ax
shl ecx, 9
add ecx, eax
mov eax, dword [0x4fd938]
jmp 0x4104ba
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x410485
cmp byte [eax + 0x1c], 0
jne 0x410436
mov eax, dword [eax + 8]
test eax, eax
jne 0x410427
jmp 0x410485
mov esi, dword [ebp + 0x20]
nop dword [eax]
cmp byte [esi + 0x1c], 0
je 0x410476
test cl, cl
je 0x410455
mov ecx, esi
call fcn.004a01a0
test al, al
je 0x410470
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4103a6
mov edx, dword [ebp + 0x1c]
call fcn.00414960
test eax, eax
jne 0x4103a6
mov cl, byte [0x4fa944]
mov esi, dword [esi + 8]
test esi, esi
jne 0x410440
mov edx, dword [esp + 0x38]
mov ch, byte [esp + 0x23]
movzx eax, word [0x4fb5ec]
inc edx
mov dword [esp + 0x38], edx
cmp edx, eax
jl 0x410361
mov ebp, dword [0x4fd940]
mov esi, dword [esp + 0x14]
mov dl, 1
jmp 0x4103c3
movzx ecx, cl
movzx eax, bl
shl ecx, 8
add ecx, eax
mov eax, dword [0x4fd934]
movzx eax, word [eax + ecx*2]
movzx ecx, ax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ecx
test ax, ax
jns 0x4104d4
mov word [edi + 4], ax
jmp 0x4104fd
and eax, 0x7fff
cmp ax, word [0x4fb5ec]
jae 0x4104f1
mov ecx, eax
mov eax, dword [0x4fd93c]
mov ax, word [eax + ecx*2]
mov word [edi + 4], ax
mov eax, 0x7fff
cmp word [esp + 0x24], ax
jne 0x410564
mov eax, dword [esp + 0x18]
test dl, dl
je 0x410512
or byte [edi + 0xc], 8
mov ecx, 0x23
mov word [eax + 4], cx
cmp byte [edi + 8], 0
jne 0x41054d
test byte [edi + 0xc], 1
jne 0x41054d
cmp byte [esp + 0x13], 0
jne 0x41054d
test dl, dl
jne 0x41054d
mov edx, dword [esp + 0x12c]
push 0
push closesocket
push 0x7fff
push eax
push edx
push 0
push ecx
mov byte [edi + 0x11], 1
mov ecx, esi
push ebx
jmp 0x411647
mov edx, dword [esp + 0x12c]
mov ecx, esi
push 0x7fff
push eax
push edx
push 0
jmp 0x410052
mov eax, dword [esp + 0x128]
cmp byte [edi + 0xa], 0
mov byte [esp + 0x23], 0
je 0x410600
test al, al
je 0x410600
mov ch, byte [esp + 0x10]
cmp dword [0x4fb5bc], edi
jne 0x41059c
test ch, ch
je 0x410600
mov dword [0x4fb5bc], 0
cmp byte [edi + 0xb], 0
jne 0x4105fb
mov cl, byte [edi + 0xc]
test cl, 8
je 0x4105b4
xor dl, dl
and cl, 0xf7
mov byte [edi + 0xc], cl
jmp 0x4105b6
mov dl, 1
test ch, ch
je 0x4105e1
test dl, dl
je 0x4105e1
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x12c]
push 0
push closesocket
push 0x7fff
push ebp
push edx
push eax
push ecx
push ebx
mov ecx, esi
jmp 0x411647
mov ebp, dword [esp + 0x18]
mov ecx, esi
mov edx, dword [esp + 0x12c]
push 0x7fff
push ebp
push edx
push eax
jmp 0x410052
mov byte [esp + 0x23], 1
cmp byte [edi + 9], 0
je 0x4107e9
test al, al
je 0x4107e9
cmp dword [0x4fb5bc], edi
jne 0x410624
mov dword [0x4fb5bc], 0
cmp byte [edi + 0xe], 0
je 0x41064e
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
mov byte [edi + 0xe], 0
mov ecx, 1
call fcn.0041bd60
mov ebp, dword [0x4fd940]
add esp, 0x10
cmp byte [edi + 0xf], 0
je 0x410678
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov byte [edi + 0xf], 0
mov ecx, 1
call fcn.0041bd60
mov ebp, dword [0x4fd940]
add esp, 0x10
mov edx, dword [esp + 0x24]
mov eax, 0x7fff
cmp dx, ax
jne 0x4106b2
mov al, byte [edi + 0xc]
test al, 8
je 0x4106b2
and al, 0xf7
mov byte [edi + 0xc], al
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x12c]
push 0x7fff
push ebp
push edx
push dword [esp + 0x134]
mov ecx, esi
jmp 0x410052
mov cl, byte [esp + 0x13]
mov al, byte [edi + 0x12]
test cl, cl
je 0x410745
cmp al, 2
jne 0x410721
mov ebp, dword [esp + 0x1c]
mov dl, bl
push 0xffc3d44e
push 0
push 0
push ebp
mov ecx, 1
call fcn.0041bd60
push 0xffc3d44d
push 0
push 0
push ebp
mov dl, bl
mov ecx, 2
call fcn.0041bd60
mov ebp, dword [esp + 0x38]
add esp, 0x20
mov edx, dword [esp + 0x12c]
push 0
push closesocket
push 0x7fff
push ebp
push edx
push dword [esp + 0x13c]
push ecx
push ebx
mov ecx, esi
jmp 0x411647
cmp al, 1
jne 0x41078c
mov ebp, dword [esp + 0x18]
mov ecx, esi
mov edx, dword [esp + 0x12c]
push 0x7fff
push ebp
push edx
push dword [esp + 0x134]
jmp 0x410052
test al, al
je 0x41078c
mov eax, 0x7fff
cmp dx, ax
jne 0x41078c
cmp byte [edi + 8], 0
jne 0x410692
test byte [edi + 0xc], 1
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x12c]
jne 0x41069d
push 0
push closesocket
push eax
push ebp
push edx
push dword [esp + 0x13c]
push ecx
push ebx
mov ecx, esi
jmp 0x411647
cmp byte [edi + 0xa], 0
jne 0x4107d7
cmp byte [edi + 8], 0
jne 0x410692
test byte [edi + 0xc], 1
jne 0x410692
test cl, cl
jne 0x410692
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x12c]
push 0
push closesocket
push 0x7fff
push ebp
push edx
push dword [esp + 0x13c]
push ecx
push ebx
mov ecx, esi
jmp 0x411647
cmp byte [esp + 0x11], 0
jne 0x4107ed
cmp byte [edi + 0xb], 0
jne 0x4107ed
jmp 0x410692
mov edx, dword [esp + 0x24]
cmp dword [0x4fb5bc], 0
mov byte [esp + 0x10], 0
je 0x410bf8
mov ecx, dword [esp + 0x128]
test cl, cl
je 0x410814
cmp byte [edi + 0xb], 0
je 0x410bf8
mov eax, 0x7fff
cmp dx, ax
jne 0x410fc8
movzx eax, word [edi + 6]
mov ebx, 0x7fff
xor esi, esi
mov dword [esp + 0x2c], eax
cmp ax, bx
mov ebx, dword [esp + 0x120]
je 0x4109e0
mov ecx, eax
mov eax, dword [0x4fb5dc]
movzx ecx, cx
mov edx, dword [eax + ecx*4]
mov al, byte [edx + 0x11]
test al, al
jne 0x410879
cmp word [edx + 0xa], 0
je 0x4108d5
movzx eax, word [edx + 0xc]
mov dword [esp + 0x2c], eax
movzx eax, word [edx + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4fd944]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x2c]
jmp 0x410890
movzx ecx, word [edx + 0xc]
movzx eax, al
mov dword [esp + 0x2c], ecx
lea eax, [eax + eax*4]
lea eax, [eax*4]
add eax, ebp
cmp byte [eax + 0xd], 0
je 0x4108c3
cmp byte [edx + 0x16], 0
je 0x4108b4
cmp byte [esp + 0x128], 0
jne 0x4108d3
mov ax, word [edx + 4]
mov word [edi + 4], ax
test esi, esi
jne 0x4108dd
jmp 0x4108c3
cmp byte [esp + 0x128], 0
jne 0x4108c3
test esi, esi
cmove esi, edx
mov eax, 0x7fff
cmp cx, ax
jne 0x410843
jmp 0x4108d5
mov esi, edx
test esi, esi
je 0x4109d5
movzx ecx, byte [esi + 0x11]
cmp ecx, 0x12
ja case.0x4108ed.1
movzx eax, byte [ecx + 0x411678]
jmp dword [eax*4 + 0x411664]
cmp byte [ebp + 0xca1], 0
mov eax, 0xc80
mov ecx, 0xc94
cmovne eax, ecx
jmp 0x410951
cmp byte [ebp + 0xcc9], 0
mov eax, 0xca8
mov ecx, 0xcbc
cmovne eax, ecx
jmp 0x410951
cmp byte [ebp + 0xcf1], 0
mov eax, 0xcd0
mov ecx, 0xce4
cmovne eax, ecx
jmp 0x410951
movzx eax, word [esi + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4fd944]
lea eax, [eax + ecx*4]
jmp 0x410953
lea eax, [ecx + ecx*4]
lea eax, [eax*4]
add eax, ebp
mov dword [0x4fb5bc], eax
movzx eax, word [esi + 6]
test ax, ax
je 0x410969
mov edx, eax
mov dword [esp + 0x30], edx
jmp 0x4109bc
movzx eax, word [esi + 4]
lea ecx, [esp + 0x30]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x12c]
mov dl, byte [esp + 0x128]
mov dword [esp + 0x30], eax
lea eax, [esi + 4]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [edi + 0xc]
push eax
push ebp
call fcn.00415440
add esp, 0x10
mov dword [esp + 0x34], eax
test eax, eax
jne 0x4109b8
push 0x7fff
push esi
push ebp
push dword [esp + 0x134]
jmp 0x41004e
mov edx, dword [esp + 0x30]
mov eax, dword [0x4fb5bc]
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x24], edx
movzx ebp, dx
mov byte [eax + 0x12], 2
jmp 0x4109e4
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
mov eax, 0x7ffe
cmp bp, ax
je 0x4109fc
mov eax, 0x7ffd
cmp bp, ax
jne 0x410bf8
test cl, cl
jne 0x410a04
mov byte [edi + 0x10], 1
test byte [0x4fac55], 0xc
jne 0x410a2b
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.0041bd60
mov ecx, dword [esp + 0x138]
add esp, 0x10
cmp bl, 0xa2
je 0x410a35
cmp bl, 0xa3
jne 0x410a58
mov esi, dword [esp + 0x1c]
test cl, cl
jne 0x410a5c
push 0xffc3d44d
push 0
push 0
push esi
mov dl, bl
mov ecx, 1
call fcn.0041bd60
add esp, 0x10
jmp 0x410a5c
mov esi, dword [esp + 0x1c]
mov eax, dword [0x4fb5bc]
mov byte [eax + 0xe], 1
mov eax, 0x7ffd
cmp bp, ax
jne 0x410a9d
test byte [0x4fac55], 0x30
jne 0x410a8f
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.0041bd60
add esp, 0x10
mov eax, dword [0x4fb5bc]
mov byte [eax + 0xf], 1
jmp 0x410b1a
mov eax, 0x7ffe
cmp bp, ax
jne 0x410b1a
cmp bl, 0xa0
je 0x410ab1
cmp bl, 0xa1
jne 0x410ad4
cmp byte [esp + 0x128], 0
jne 0x410ad4
push 0xffc3d44d
push 0
push 0
push esi
mov dl, bl
mov ecx, 1
call fcn.0041bd60
add esp, 0x10
test byte [0x4fac55], 0x10
je 0x410af7
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa0
mov ecx, 1
call fcn.0041bd60
add esp, 0x10
test byte [0x4fac55], 0x20
je 0x410b1a
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa1
mov ecx, 1
call fcn.0041bd60
add esp, 0x10
test byte [0x4fac55], 1
je 0x410b3d
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa2
mov ecx, 1
call fcn.0041bd60
add esp, 0x10
test byte [0x4fac55], 2
je 0x410b60
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa3
mov ecx, 1
call fcn.0041bd60
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.0041bd60
mov eax, 0x7ffd
add esp, 0x10
cmp bp, ax
jne 0x410bc1
mov eax, dword [0x4fb5bc]
cmp byte [eax + 0xf], 0
je 0x410bc1
cmp bl, 0x60
jb 0x410b99
cmp bl, 0x69
jbe 0x410b9e
cmp bl, 0x6e
jne 0x410bc1
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, 1
call fcn.0041bd60
mov eax, dword [0x4fb5bc]
add esp, 0x10
mov byte [eax + 0xf], 0
mov ecx, dword [esp + 0x18]
mov eax, 0x68
mov word [ecx + 4], ax
mov eax, dword [esp + 0x128]
test al, al
jne 0x410bdd
mov byte [edi + 0x11], 1
mov edx, dword [esp + 0x12c]
push 0
push closesocket
push 0x7fff
push ecx
push edx
push eax
jmp 0x411641
mov eax, 0x7fff
cmp dx, ax
jne 0x410fc1
mov al, byte [edi + 8]
mov dl, byte [0x4fac54]
test al, al
je 0x410c17
not al
and dl, al
mov eax, dword [esp + 0x14]
mov dh, byte [esp + 0x12]
cmp eax, dword [0x4faa98]
jne 0x410c4c
test dh, dh
je 0x410c4c
mov eax, dword [esp + 0x1c]
movzx ecx, dl
movzx eax, ax
shl ecx, 9
add ecx, eax
mov eax, dword [0x4fd938]
movzx ecx, word [eax + ecx*2]
movzx eax, bl
mov dword [esp + 0x2c], eax
jmp 0x410c64
movzx eax, bl
movzx ecx, dl
shl ecx, 8
add ecx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [0x4fd934]
movzx ecx, word [eax + ecx*2]
movzx eax, cx
mov ebx, 0x7fff
mov dword [esp + 0x38], ecx
mov esi, eax
cmp word [esp + 0x38], bx
mov ebp, eax
mov ebx, dword [esp + 0x120]
movzx ecx, cx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ecx
mov ecx, eax
jne 0x410d12
cmp byte [0x4fc37e], 0
je 0x410d12
cmp bl, 9
je 0x410d12
mov esi, dword [esp + 0x14]
and dl, 0xf3
cmp esi, dword [0x4faa98]
jne 0x410cca
test dh, dh
je 0x410cca
mov eax, dword [esp + 0x1c]
movzx ecx, dl
movzx eax, ax
shl ecx, 9
add ecx, eax
mov eax, dword [0x4fd938]
jmp 0x410cd9
mov eax, dword [0x4fd934]
movzx ecx, dl
shl ecx, 8
add ecx, dword [esp + 0x2c]
movzx eax, word [eax + ecx*2]
movzx ecx, ax
movzx edx, ax
and eax, 0x7fff
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ecx
mov ecx, 0x7ff9
cmp ax, cx
jbe 0x410eed
mov ecx, edx
mov esi, edx
mov ebp, edx
mov edx, 0x7fff
cmp ax, dx
jae 0x410ee4
test cx, cx
movzx eax, bp
mov ecx, dword [esp + 0x128]
movzx edx, si
jns 0x410e14
mov eax, dword [esp + 0x24]
test cl, cl
jne 0x410edb
mov word [edi + 4], ax
mov ebp, 0x7fff
mov ah, byte [0x4fac54]
mov al, ah
and al, 0xc0
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 8
mov edx, ecx
or edx, 1
test ah, 0xc
cmove edx, ecx
mov ecx, edx
or ecx, 4
test ah, 0x30
cmove ecx, edx
movzx edx, word [edi + 6]
mov esi, ecx
or esi, 2
test ah, 3
cmove esi, ecx
cmp dx, bp
je 0x410ddf
nop dword [eax + eax]
mov eax, dword [0x4fb5dc]
movzx ecx, dx
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x15], 0
movzx edx, word [ecx + 0xc]
jne 0x410daa
movzx eax, byte [ecx + 0xf]
mov ebx, dword [esp + 0x120]
not eax
test byte [0x4fac54], al
jne 0x410dda
cmp byte [ecx + 0x16], 0
jne 0x410dda
cmp byte [ecx + 0x11], 0
jne 0x410dda
cmp word [ecx + 0xa], 0
jne 0x410dda
cmp word [ecx + 6], 0
jne 0x410dda
mov eax, esi
not eax
test dword [ecx], eax
jne 0x410dda
movzx eax, byte [0x4fac54]
not eax
test byte [ecx + 0xe], al
je 0x410e0e
cmp dx, bp
jne 0x410d80
mov eax, ebp
movzx ecx, ax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x128]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov edx, 0x7fff
cmp ax, dx
jne 0x410fc8
jmp 0x410f08
movzx eax, word [ecx + 4]
jmp 0x410de1
mov ebp, 0x7fff
cmp dx, bp
je 0x410eff
and eax, ebp
test cl, cl
je 0x410eba
cmp ax, word [0x4fb5ec]
jae 0x410ea9
mov esi, eax
mov eax, dword [0x4fd93c]
cmp word [eax + esi*2], bp
je 0x410ea9
cmp byte [esp + 0x23], 0
mov ebp, dword [esp + 0x18]
jne 0x410e93
mov edx, dword [esp + 0x12c]
lea eax, [ebp + 4]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [edi + 0xc]
push eax
push edx
mov dl, cl
lea ecx, [esp + 0x40]
call fcn.00415440
add esp, 0x10
mov dword [esp + 0x34], eax
test eax, eax
je 0x410e8c
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x128]
jmp 0x410df7
mov ecx, dword [esp + 0x128]
mov eax, dword [0x4fd93c]
movzx eax, word [eax + esi*2]
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
jmp 0x410dfb
cmp byte [esp + 0x23], 0
mov ebp, dword [esp + 0x18]
je 0x410df7
jmp 0x410f10
cmp ax, word [0x4fb5ec]
jae 0x410df3
mov ecx, eax
mov eax, dword [0x4fd93c]
mov ax, word [eax + ecx*2]
mov word [edi + 4], ax
jmp 0x410dec
mov ebp, dword [esp + 0x18]
jmp 0x410dfb
mov ecx, dword [esp + 0x128]
jmp 0x410f04
mov ecx, dword [esp + 0x128]
mov edx, 0x7fff
mov ebp, dword [esp + 0x18]
jmp 0x410f0c
mov edx, 0x7fff
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test cl, cl
je 0x410f55
cmp byte [edi + 8], 0
jne 0x410f42
test byte [edi + 0xc], 1
jne 0x410f42
cmp byte [edi + 9], 0
je 0x410f42
cmp byte [esp + 0x13], 0
jne 0x410f42
push 0
push closesocket
push 0x7fff
push ebp
push dword [esp + 0x13c]
jmp 0x411640
push 0x7fff
push ebp
push dword [esp + 0x134]
push ecx
jmp 0x41004e
cmp word [edi + 4], dx
lea ecx, [edi + 4]
jne 0x410f74
push 0x7fff
push ebp
push dword [esp + 0x134]
mov ecx, esi
push 0
jmp 0x410052
push 0
lea eax, [esp + 0x14]
mov dl, 1
push eax
lea eax, [edi + 0xc]
mov edi, dword [esp + 0x134]
push eax
push edi
call fcn.00415440
add esp, 0x10
cmp byte [esp + 0x10], 0
je 0x410fa8
push 0x7fff
push ebp
push edi
push 0
mov ecx, esi
jmp 0x410052
push 0
push closesocket
push 0x7fff
push ebp
push edi
push 0
push ecx
push ebx
mov ecx, esi
jmp 0x411647
mov ecx, dword [esp + 0x128]
mov al, byte [edi + 0xc]
lea edx, [edi + 0xc]
test al, 8
je 0x410fdf
test cl, cl
je 0x410fdf
and al, 0xf7
mov byte [esp + 0x10], 1
mov byte [edx], al
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
and eax, 0x7fff
mov ebp, dword [esp + 0x12c]
cmp ax, word [0x4fb5ec]
jae 0x4110cc
cmp dword [esp + 0x34], 0
jne 0x4110cc
lea eax, [esi + 4]
push eax
lea eax, [esp + 0x14]
push eax
push edx
mov dl, cl
lea ecx, [esp + 0x3c]
push ebp
call fcn.00415440
add esp, 0x10
mov dword [esp + 0x34], eax
test eax, eax
jne 0x4110c6
cmp word [esi + 4], 0x69
je 0x4109a5
mov eax, dword [esp + 0x128]
test al, al
je 0x41106c
cmp byte [edi + 0x11], 0
je 0x411060
push 0
push closesocket
push 0x7fff
push esi
push ebp
push eax
jmp 0x411641
push 0x7fff
push esi
push ebp
jmp 0x41004d
lea ecx, [edi + 4]
mov eax, 0x7fff
cmp word [ecx], ax
jne 0x411087
push 0x7fff
push esi
push ebp
push 0
jmp 0x41004e
push 0
lea eax, [esp + 0x14]
mov byte [esp + 0x14], 0
push eax
lea eax, [edi + 0xc]
mov dl, 1
push eax
push ebp
call fcn.00415440
add esp, 0x10
cmp byte [esp + 0x10], 0
jne 0x411079
and byte [edi + 0xc], 0xf7
push 0
push closesocket
push 0x7fff
push esi
push ebp
mov byte [edi + 0x11], 1
push 0
jmp 0x411641
mov ecx, dword [esp + 0x30]
jmp 0x4110d0
mov ecx, dword [esp + 0x24]
and ecx, 0x7fff
test byte [0x4fac55], 0xcc
mov dword [esp + 0x24], ecx
je 0x4111b1
cmp byte [esp + 0x10], 0
jne 0x4111b1
cmp byte [0x4fc37d], 0
jne 0x41110b
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4faa94]
jne 0x4111b1
test byte [0x4fac55], 0xc0
mov dl, byte [0x4fab2f]
je 0x411146
test dl, 0xc0
jne 0x411139
cmp cx, word [0x4fb5ec]
jae 0x411146
mov eax, dword [0x4fb5dc]
movzx ecx, cx
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc0
je 0x411142
mov byte [0x4fc37c], 1
jmp 0x4111b1
mov ecx, dword [esp + 0x24]
cmp byte [0x4fc37c], 0
jne 0x4111b1
mov al, byte [0x4fac55]
test al, 0xc
je 0x4111b1
test al, 3
jne 0x4111b1
test dl, 0xc
jne 0x41117b
cmp cx, word [0x4fb5ec]
jae 0x4111b1
mov eax, dword [0x4fb5dc]
movzx ecx, cx
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc
je 0x4111b1
cmp dword [0x4faa98], 0
je 0x41118d
mov byte [0x4fc37c], 1
jmp 0x4111b1
movzx eax, word [0x4f93ec]
mov ecx, 2
mov dl, byte [0x4f861e]
push 0xffc3d44d
push 0
push 0
push eax
call fcn.0041bd60
add esp, 0x10
mov edx, dword [esp + 0x24]
movzx ecx, dx
lea eax, [ecx - 0x7ffa]
cmp eax, 4
ja case.default.0x4111c7
jmp dword [eax*4 + 0x41168c]
cmp byte [0x4fc37e], 0
je 0x4109a5
xor al, al
test byte [0x4fac55], 4
je 0x4111ed
mov ecx, 0xa4
jmp 0x4111ff
test byte [0x4fac55], 8
movzx ecx, al
mov eax, 0xa5
cmovne ecx, eax
cmp byte [0x4fc37e], 0
mov dword [esp + 0x38], ecx
je 0x411284
mov eax, 0x7ffb
cmp dx, ax
je case.0x4111c7.32765
push 0xffc3d44d
test cl, cl
movzx eax, cl
push 0
mov edx, 0x12
mov ecx, 1
push 0
cmovne edx, eax
push 0
call fcn.0041bd60
add esp, 0x10
cmp byte [edi + 8], 0
je 0x411273
cmp bl, 0x5b
je 0x411273
cmp bl, 0x5c
je 0x411273
cmp byte [esp + 0x128], 0
jne 0x411273
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
mov ecx, 1
call fcn.0041bd60
add esp, 0x10
mov byte [0x4fc37e], 0
mov edx, 0x7fff
jmp 0x41152b
cmp bl, 0xa4
je 0x411293
mov byte [esp + 0x23], 0
cmp bl, 0xa5
jne 0x411298
mov byte [esp + 0x23], 1
cmp bl, 0xa0
je 0x4112a6
cmp bl, 0xa1
je 0x4112a6
xor cl, cl
jmp 0x4112a8
mov cl, 1
mov byte [esp + 0x12], cl
cmp bl, 0xa2
je 0x4112bb
mov byte [esp + 0x11], 0
cmp bl, 0xa3
jne 0x4112c0
mov byte [esp + 0x11], 1
xor dl, dl
test byte [0x4fac55], 0x10
mov dword [esp + 0x2c], edx
je 0x4112d3
mov dl, 0xa0
jmp 0x4112f6
test byte [0x4fac55], 0x20
mov eax, dword [esp + 0x128]
je 0x4112e7
mov dl, 0xa1
jmp 0x4112fd
test al, al
jne 0x411301
test cl, cl
movzx edx, dl
movzx eax, bl
cmovne edx, eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x2c], edx
xor cl, cl
test byte [0x4fac55], 1
mov dword [esp + 0x34], ecx
je 0x411317
mov byte [esp + 0x34], 0xa2
jmp 0x41133d
test byte [0x4fac55], 2
je 0x411327
mov byte [esp + 0x34], 0xa3
jmp 0x41133d
test al, al
jne 0x41133d
cmp byte [esp + 0x11], 0
movzx ecx, cl
movzx eax, bl
cmovne ecx, eax
mov dword [esp + 0x34], ecx
mov byte [esp + 0x11], 0
test dl, dl
je 0x411363
push 0xffc3d44d
push 0
push 0
push 0
mov ecx, 1
call fcn.0041bd60
add esp, 0x10
mov byte [esp + 0x11], 1
mov eax, dword [esp + 0x34]
test al, al
je 0x411385
push 0xffc3d44d
push 0
push 0
push 0
mov dl, al
mov ecx, 1
call fcn.0041bd60
add esp, 0x10
cmp byte [esp + 0x23], 0
je 0x41139a
cmp byte [esp + 0x128], 0
jne 0x4113a2
mov al, bl
jmp 0x41139e
mov eax, dword [esp + 0x38]
test al, al
jne 0x4113b9
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.0041bd60
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.0041bd60
add esp, 0x10
cmp byte [esp + 0x11], 0
je 0x4113fa
cmp byte [esp + 0x12], 0
jne 0x4113fa
mov dl, byte [esp + 0x2c]
xor ecx, ecx
push 0xffc3d44d
push 0
push 0
push 0
call fcn.0041bd60
add esp, 0x10
mov byte [0x4fc37e], 1
mov edx, 0x7fff
jmp 0x41152b
cmp byte [0x4fc37e], 0
je 0x4109a5
mov eax, dword [esp + 0x128]
test al, al
jne 0x411458
cmp bl, 0xa2
je 0x411437
cmp bl, 0xa3
je 0x411437
cmp bl, 0xa0
je 0x411437
cmp bl, 0xa1
jne 0x411458
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
mov ecx, 1
call fcn.0041bd60
mov eax, dword [esp + 0x138]
add esp, 0x10
test byte [0x4fac55], 0xc
je 0x41146f
test al, al
je 0x411486
cmp bl, 0xa4
je 0x41146f
cmp bl, 0xa5
jne 0x411486
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.0041bd60
add esp, 0x10
mov eax, 0x7ffd
cmp word [esp + 0x24], ax
jne 0x4114e7
test byte [0x4fac55], 0x30
jne 0x4114e7
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.0041bd60
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.0041bd60
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, 1
call fcn.0041bd60
add esp, 0x30
mov edx, 0x7fff
jmp 0x41152b
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.0041bd60
add esp, 0x10
mov edx, 0x7fff
jmp 0x41152b
mov edx, ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov eax, dword [ecx + 4]
test eax, eax
je 0x41152b
cmp byte [eax], 5
jb 0x41152b
movzx eax, word [ecx + 0x14]
shl eax, 0x10
or edx, eax
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x128]
mov eax, 0x68
mov word [esi + 4], ax
test cl, cl
je 0x4115d6
cmp byte [esp + 0x13], 0
je 0x41159b
cmp byte [edi + 9], 0
je 0x41159b
mov edi, dword [esp + 0x1c]
lea ecx, [eax - 0x67]
push 0xffc3d44e
push 0
push 0
push edi
mov dl, bl
call fcn.0041bd60
push 0xffc3d44d
push 0
push 0
push edi
mov dl, bl
mov ecx, 2
call fcn.0041bd60
mov eax, dword [esp + 0x5c]
add esp, 0x20
push 0
push closesocket
push eax
push esi
push ebp
push dword [esp + 0x13c]
jmp 0x411641
cmp byte [edi + 8], 0
je 0x4115b4
cmp byte [edi + 0x11], 0
je 0x4115f8
push 0
push closesocket
push edx
jmp 0x41163e
cmp byte [esp + 0x10], 0
je 0x411632
mov eax, dword [esp + 0x14]
push edx
push esi
push ebp
push ecx
push dword [esp + 0x2c]
mov ecx, eax
push ebx
push dword [esp + 0x134]
jmp 0x40fdbc
mov eax, dword [0x4fb5bc]
mov byte [edi + 0x10], 1
test eax, eax
je 0x4115ed
cmp byte [eax + 8], 0
je 0x4115ed
mov byte [eax + 0x12], 2
cmp byte [esp + 0x10], 0
je 0x411601
or byte [edi + 0xc], 8
push edx
push esi
push ebp
push ecx
jmp 0x41004e
cmp bl, 0xa4
je 0x41160b
cmp bl, 0xa5
jne 0x41162e
push 0xffc3d450
push 0
push 0
push dword [esp + 0x28]
mov dl, bl
mov ecx, 1
call fcn.0041bd60
mov ecx, dword [esp + 0x138]
add esp, 0x10
mov byte [edi + 0x11], 1
mov eax, dword [esp + 0x3c]
push 0
push closesocket
push eax
push esi
push ebp
push ecx
push ecx
push ebx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x13c]
call fcn.004116a0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret