Function at 0x1003ea57
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
push ebx
push esi
push edi
mov byte [ebp - 0x1c], 0xd4
mov byte [ebp - 0x1b], 0x31
mov byte [ebp - 0x1a], 0x22
mov byte [ebp - 0x19], 0xf0
mov byte [ebp - 0x18], 0xbb
mov byte [ebp - 0x17], 0x19
mov byte [ebp - 0x16], 0xe9
mov byte [ebp - 0x15], 0x45
mov byte [ebp - 0x14], 0x35
mov byte [ebp - 0x13], 0x68
mov byte [ebp - 0x12], 0x24
mov byte [ebp - 0x11], 0xc2
mov byte [ebp - 0x10], 0x9e
mov byte [ebp - 0xf], 0x71
mov byte [ebp - 0xe], 0x7a
mov byte [ebp - 0xd], 0x68
mov dword [ebp - 0x100], 0xa5a5
mov word [ebp - 0x34], 0xa
jmp 0x1003f08f
jmp 0x1003f27b
jmp 0x1003f3ee
jmp 0x1003eac5
jmp 0x1003f3fa
jmp 0x1003f3fa
mov word [ebp - 0x2c], 0
jmp 0x1003eae3
mov ax, word [ebp - 0x2c]
add ax, 1
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x2c]
and ecx, 0xffff
cmp ecx, 3
jge 0x1003ebb9
mov edx, dword [ebp - 0x2c]
and edx, 0xffff
mov eax, dword [ebp - 0x2c]
and eax, 0xffff
imul edx, eax
mov ecx, dword [ebp - 0x2c]
and ecx, 0xffff
imul edx, ecx
mov eax, dword [ebp - 0x2c]
and eax, 0xffff
imul edx, eax
add edx, 7
mov dword [ebp - 0x118], edx
cmp dword [ebp - 0x118], 7
je 0x1003eb46
cmp dword [ebp - 0x118], 8
je 0x1003eb60
cmp dword [ebp - 0x118], 0x17
je 0x1003eb59
jmp 0x1003ebb4
mov cx, word [ebp - 0x2e]
add cx, 1
mov word [ebp - 0x2e], cx
jo 0x1003eb57
jno 0x1003eb57
add ebx, ebp
pop ebx
jmp 0x1003ebb4
jb 0x1003eb5e
jae 0x1003eb5e
add ch, bl
insd dword es:[edi], dx
jmp 0x1003ebcd
mov eax, dword [ebp - 0x2e]
and eax, 0xffff
cdq
mov ecx, 3
idiv ecx
mov ecx, edx
sub ecx, 1
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x2e]
and eax, 0xffff
cdq
mov esi, 5
idiv esi
xor eax, eax
cmp edx, 2
setne al
or ecx, eax
test ecx, ecx
je 0x1003ebae
mov cx, word [ebp - 0x30]
mov word [ebp - 0x36], cx
mov word [ebp - 0x32], 1
jne 0x1003ebac
je 0x1003ebac
add ebp, ebx
push es
jmp 0x1003ebb4
mov word [ebp - 0x32], 0
jmp 0x1003ead7
jmp 0x1003f3fa
jmp 0x1003eacf
jmp 0x1003f3fa
jmp 0x1003f27b
mov word [ebp - 0x2c], 0
jmp 0x1003ebe1
mov dx, word [ebp - 0x2c]
add dx, 1
mov word [ebp - 0x2c], dx
mov eax, dword [ebp - 0x2c]
and eax, 0xffff
cmp eax, 8
jge 0x1003ed54
mov ecx, dword [ebp - 0x2c]
and ecx, 0xffff
mov edx, dword [ebp - 0x2c]
and edx, 0xffff
imul ecx, edx
mov eax, dword [ebp - 0x2c]
and eax, 0xffff
lea ecx, [ecx + eax + 1]
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x11c]
sub edx, 1
mov dword [ebp - 0x11c], edx
cmp dword [ebp - 0x11c], 0x38
ja case.0x1003ec43.8
mov ecx, dword [ebp - 0x11c]
xor eax, eax
mov al, byte [ecx + 0x1003f428]
jmp dword [eax*4 + 0x1003f404]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x100], edx
jbe 0x1003ec58
ja 0x1003ec58
add al, 0x8b
inc ebp
fadd st(1), st(0)
call 0xec497571
mov eax, dword [ebp - 0x24]
shr eax, 0x10
mov dword [ebp - 0x24], eax
jns 0x1003ec66
js 0x1003ec66
add eax, 0xe4e9
jmp case.0x1003ec43.8
add byte [ebx - 0x50f007b3], cl
dec ebp
cld
mov ecx, dword [ebp - 8]
imul ecx, dword [ebp - 4]
and ecx, 0xffff
mov dword [ebp - 0xc], ecx
jp 0x1003ec80
jnp 0x1003ec80
push es
jmp case.0x1003ec43.8
mov edx, dword [ebp - 0x100]
shr edx, 0x10
mov dword [ebp - 0x20], edx
jl 0x1003ec96
jge 0x1003ec96
pop es
mov eax, dword [ebp - 0x100]
and eax, 0xffff
mov dword [ebp - 4], eax
jmp case.0x1003ec43.8
cmp dword [ebp - 0x20], 0
je 0x1003ecc4
mov ecx, dword [ebp - 0x20]
imul ecx, dword [ebp - 0x28]
and ecx, 0xffff
mov edx, dword [ebp - 0xc]
add edx, ecx
mov dword [ebp - 0xc], edx
jmp case.0x1003ec43.8
mov dword [ebp - 8], 0x15a
jle 0x1003ecd5
jg 0x1003ecd5
or bh, al
inc ebp
fdiv dword [0xeb00004e]
jno 0x1003ec6a
invalid
mov dword [ebp - 0x28], 0x4e35
jmp case.0x1003ec43.8
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 4]
inc ebp
fmul dword [edi]
scasd eax, dword es:[edi]
inc ebp
cld
mov ecx, dword [ebp - 0xc]
shl ecx, 0x10
and ecx, 0xffff0000
lea edx, [eax + ecx + 1]
mov dword [ebp - 0x24], edx
jmp case.0x1003ec43.8
mov eax, dword [ebp - 0x32]
and eax, 0xffff
and eax, 0x80000001
jns 0x1003ed0e
dec eax
or eax, 0xfffffffe
inc eax
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
je 0x1003ed28
cmp dword [ebp - 0x120], 1
je 0x1003ed2d
jmp 0x1003ed2f
jmp 0x1003f1b6
jmp 0x1003ed6d
jmp case.0x1003ec43.8
mov ecx, dword [ebp - 0x24]
and ecx, 0x7fff
mov dword [ebp - 0x24], ecx
push ecx
xor ecx, ecx
jecxz 0x1003ed43
or dword [ecx + 0x66], ebx
mov edx, dword [ebp - 0x24]
pop ecx
mov dx, word [ebp - 0x24]
mov word [ebp - 0x10c], dx
jmp 0x1003ebd5
jmp 0x1003ed57
jmp 0x1003eacf
jmp 0x1003eacf
jmp 0x1003ed5c
jmp 0x1003f3fa
jmp 0x1003eacf
mov word [ebp - 0x2c], 0
jmp 0x1003ed81
mov ax, word [ebp - 0x2c]
add ax, 1
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x2c]
and ecx, 0xffff
cmp ecx, 7
jge 0x1003f05d
mov edx, dword [ebp - 0x2c]
and edx, 0xffff
mov eax, dword [ebp - 0x2c]
and eax, 0xffff
imul edx, eax
mov ecx, dword [ebp - 0x2c]
and ecx, 0xffff
imul edx, ecx
add edx, 1
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x124]
sub edx, 1
mov dword [ebp - 0x124], edx
cmp dword [ebp - 0x124], 0xd8
ja case.0x1003ede9.7
mov ecx, dword [ebp - 0x124]
xor eax, eax
mov al, byte [ecx + 0x1003f481]
jmp dword [eax*4 + 0x1003f461]
mov edx, dword [ebp - 0x114]
and edx, 0xffff
mov eax, dword [ebp - 0x110]
and eax, 0xffff
lea ecx, [ebp + eax*8 - 0x4c]
mov dx, word [ecx + edx*2]
add dx, 1
mov eax, dword [ebp - 0x114]
and eax, 0xffff
mov ecx, dword [ebp - 0x110]
and ecx, 0xffff
lea ecx, [ebp + ecx*8 - 0x4c]
mov word [ecx + eax*2], dx
jo 0x1003ee37
jno 0x1003ee37
adc dword [esi - 0x75], esp
push ebp
shl byte [esi - 0x77], 1
push ebp
retf 0x14e9
mov dx, word [ebp - 0x30]
mov word [ebp - 0x36], dx
jmp case.0x1003ede9.7
mov eax, dword [ebp - 0x10c]
and eax, 0xffff
cdq
mov ecx, 3
idiv ecx
mov word [ebp - 0x114], dx
jb 0x1003ee63
jae 0x1003ee63
adc ch, cl
lock add dword [eax], eax
add byte [esi - 0x39], ah
invalid
invalid
test eax, edi
invalid
jmp case.0x1003ede9.7
mov word [ebp - 0x108], 0
jmp 0x1003ee85
mov dx, word [ebp - 0x108]
add dx, 1
mov word [ebp - 0x108], dx
mov eax, dword [ebp - 0x108]
and eax, 0xffff
cmp eax, 3
jge 0x1003eef1
jne 0x1003ee9a
je 0x1003ee9a
adc ecx, dword [ebx - 0x10f73]
inc dword [ecx + 0xffffe1]
add byte [ebp - 0x744b32ac], cl
test esp, ebp
invalid
mov ecx, dword [ebp - 0x110]
and ecx, 0xffff
lea edx, [ebp + ecx*8 - 0x4c]
mov eax, dword [ebp - 0x114]
and eax, 0xffff
xor ecx, ecx
mov cx, word [edx + eax*2]
mov edx, dword [ebp - 0x110]
and edx, 0xffff
lea eax, [ebp + edx*8 - 0x4c]
mov edx, dword [ebp - 0x108]
and edx, 0xffff
xor esi, esi
mov si, word [eax + edx*2]
cmp ecx, esi
jle 0x1003eeef
mov ax, word [ebp - 0x108]
mov word [ebp - 0x114], ax
jmp 0x1003ee73
jmp case.0x1003ede9.7
mov eax, dword [ebp - 0x10c]
and eax, 0xffff
cdq
mov ecx, 9
idiv ecx
mov word [ebp - 0x10c], dx
mov eax, dword [ebp - 0x10c]
and eax, 0xffff
cdq
mov ecx, 3
idiv ecx
mov word [ebp - 0x110], ax
jbe 0x1003ef2f
ja 0x1003ef2f
adc al, 0xe9
and al, 1
add byte [eax], al
jmp case.0x1003ede9.7
mov eax, dword [ebp - 0x10c]
and eax, 0xffff
cdq
mov ecx, 9
idiv ecx
mov dword [ebp - 0x128], edx
cmp dword [ebp - 0x128], 8
ja case.default.0x1003ef5c
mov edx, dword [ebp - 0x128]
jmp dword [edx*4 + 0x1003f55a]
jmp 0x1003ed61
jmp 0x1003f3e0
jns 0x1003ef72
js 0x1003ef72
adc eax, 0x235e9
add cl, ch
jmp 0x1003f3e9
invalid
jmp case.0x1003ef5c.5
jmp 0x1003f1ac
jmp 0x1003f3e9
jmp 0x1003f26c
jp 0x1003ef86
jnp 0x1003ef86
push ss
jmp 0x1003f3d6
jmp 0x1003f05d
jmp 0x1003f276
jmp 0x1003eabd
mov word [ebp - 0x104], 0
jmp 0x1003efb7
mov ax, word [ebp - 0x104]
add ax, 1
mov word [ebp - 0x104], ax
mov ecx, dword [ebp - 0x104]
and ecx, 0xffff
cmp ecx, 3
jge 0x1003f023
jl 0x1003efcd
jge 0x1003efcd
pop ss
mov edx, dword [ebp - 0x110]
and edx, 0xffff
lea eax, [ebp + edx*8 - 0x4c]
mov ecx, dword [ebp - 0x114]
and ecx, 0xffff
xor edx, edx
mov dx, word [eax + ecx*2]
mov eax, dword [ebp - 0x104]
and eax, 0xffff
lea ecx, [ebp + eax*8 - 0x4c]
mov eax, dword [ebp - 0x114]
and eax, 0xffff
xor esi, esi
mov si, word [ecx + eax*2]
cmp edx, esi
jle 0x1003f021
mov cx, word [ebp - 0x104]
mov word [ebp - 0x110], cx
jmp 0x1003efa5
jmp case.0x1003ede9.7
mov edx, dword [ebp - 0x110]
and edx, 0xffff
imul edx, edx, 3
mov eax, dword [ebp - 0x114]
and eax, 0xffff
add edx, eax
mov word [ebp - 0x10c], dx
jle 0x1003f04d
jg 0x1003f04d
sbb byte [esi - 0x75], ah
invalid
mov cx, word [ebp - 0x10c]
mov word [ebp - 0x30], cx
jmp 0x1003ed75
jmp 0x1003eacf
mov edx, dword [ebp + 0x10]
add edx, 1
push edx
push 0
mov eax, dword [ebp + 8]
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0xfc]
push edx
call fcn.10043650
add esp, 8
jmp 0x1003f27b
mov word [ebp - 0x2c], 0
jmp 0x1003f0a3
mov ax, word [ebp - 0x2c]
add ax, 1
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x2c]
and ecx, 0xffff
cmp ecx, 6
jge 0x1003f1a2
mov edx, dword [ebp - 0x2c]
and edx, 0xffff
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x12c], 5
ja case.default.0x1003f0d7
mov eax, dword [ebp - 0x12c]
jmp dword [eax*4 + 0x1003f57e]
mov word [ebp - 0x104], 0
jmp 0x1003f0fb
mov cx, word [ebp - 0x104]
add cx, 1
mov word [ebp - 0x104], cx
mov edx, dword [ebp - 0x104]
and edx, 0xffff
cmp edx, 3
jge 0x1003f160
mov word [ebp - 0x108], 0
jmp 0x1003f129
mov ax, word [ebp - 0x108]
add ax, 1
mov word [ebp - 0x108], ax
mov ecx, dword [ebp - 0x108]
and ecx, 0xffff
cmp ecx, 3
jge 0x1003f15e
mov edx, dword [ebp - 0x104]
and edx, 0xffff
lea eax, [ebp + edx*8 - 0x4c]
mov ecx, dword [ebp - 0x108]
and ecx, 0xffff
mov word [eax + ecx*2], 0
jmp 0x1003f117
jmp 0x1003f0e9
jmp case.default.0x1003f0d7
mov word [ebp - 0x46], 0
push ecx
xor ecx, ecx
jecxz 0x1003f16e
sbb dword [ecx - 0x15], ebx
sub al, 0x66
mov dx, word [ebp - 0x40]
pop ecx
jmp case.default.0x1003f0d7
mov dx, word [ebp - 0x40]
add dx, 1
mov word [ebp - 0x40], dx
jmp 0x1003f180
jmp case.default.0x1003f0d7
mov word [ebp - 0x36], 0xffff
jmp case.default.0x1003f0d7
mov word [ebp - 0x2e], 0
jo 0x1003f195
jno 0x1003f195
and ebx, ebp
push es
jmp case.default.0x1003f0d7
mov word [ebp - 0x30], 0
jmp 0x1003f097
jmp 0x1003eacf
jmp 0x1003f27b
jmp 0x1003f271
jmp 0x1003eacf
mov eax, dword [ebp - 0x10c]
and eax, 0xffff
cdq
mov ecx, 7
idiv ecx
xor ecx, ecx
cmp edx, 2
sete cl
mov eax, dword [ebp - 0x10c]
and eax, 0xffff
cdq
mov esi, 0xb
idiv esi
xor eax, eax
cmp edx, 5
sete al
or ecx, eax
test ecx, ecx
je 0x1003f205
mov cx, word [ebp - 0x30]
mov word [ebp - 0x36], cx
mov word [ebp - 0x32], 1
jmp 0x1003ebcd
mov edx, dword [ebp - 0x46]
and edx, 0xffff
mov dword [ebp - 0x130], edx
cmp dword [ebp - 0x130], 9
ja case.default.0x1003f223
mov eax, dword [ebp - 0x130]
jmp dword [eax*4 + 0x1003f596]
jmp 0x1003f259
jmp 0x1003f265
jb 0x1003f233
jae 0x1003f233
and ch, bl
inc esi
jmp 0x1003f27b
jmp 0x1003eab8
jmp 0x1003f062
jmp 0x1003f27b
jne 0x1003f246
je 0x1003f246
and ebp, ebx
psubsw mm3, qword [edx - 1]
invalid
pop edx
invalid
invalid
jmp case.default.0x1003f223
jmp 0x1003f1a7
jmp 0x1003f39b
jmp 0x1003ebc8
jmp 0x1003f27b
jmp 0x1003f27b
jbe 0x1003f260
ja 0x1003f260
and al, 0xe9
xchg ebp, eax
add dword [eax], eax
add bl, ch
adc al, 0xe9
mov es, word [ecx]
add byte [eax], al
jmp 0x1003f3fa
jmp 0x1003f27b
jmp 0x1003f3fa
jmp 0x1003f1b1
jmp 0x1003eacf
jmp 0x1003ebbe
mov word [ebp - 0x2c], 0
jmp 0x1003f28f
mov cx, word [ebp - 0x2c]
add cx, 1
mov word [ebp - 0x2c], cx
mov edx, dword [ebp - 0x2c]
and edx, 0xffff
cmp edx, 4
jge 0x1003f39b
mov eax, dword [ebp - 0x2c]
and eax, 0xffff
mov ecx, dword [ebp - 0x2c]
and ecx, 0xffff
imul eax, ecx
mov edx, dword [ebp - 0x2c]
and edx, 0xffff
imul edx, edx, 3
lea eax, [eax + edx + 1]
mov dword [ebp - 0x134], eax
mov ecx, dword [ebp - 0x134]
sub ecx, 1
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x134], 0x12
ja case.0x1003f2f5.4
mov eax, dword [ebp - 0x134]
xor edx, edx
mov dl, byte [eax + 0x1003f5d2]
jmp dword [edx*4 + 0x1003f5be]
mov cx, word [ebp - 0x46]
add cx, 1
mov word [ebp - 0x46], cx
jns 0x1003f30d
js 0x1003f30d
and eax, 0x84e9
add byte [ebx - 0x1d7e45ab], cl
mov edx, dword [ebp - 0x46]
invalid
loop 0x1003f317
jmp case.0x1003f2f5.4
mov edx, dword [ebp - 0x46]
and edx, 0xffff
mov eax, dword [ebp - 0x34]
and eax, 0xffff
cmp edx, eax
jne case.default.0x1003f34c
mov eax, dword [ebp - 0x2e]
and eax, 0xffff
cdq
mov ecx, 9
idiv ecx
mov dword [ebp - 0x138], edx
cmp dword [ebp - 0x138], 8
ja case.default.0x1003f34c
mov edx, dword [ebp - 0x138]
jmp dword [edx*4 + 0x1003f5e5]
jmp 0x1003eaca
jmp 0x1003f267
jmp 0x1003eac2
jp 0x1003f367
jnp 0x1003f367
jmp 0x1003ebb9
jmp 0x1003ebb9
jmp 0x1003f3e2
jmp 0x1003f3f3
jmp 0x1003f25b
jmp 0x1003ed63
jmp 0x1003ebc3
jmp case.0x1003f2f5.4
mov word [ebp - 0x32], 1
jl 0x1003f38f
jge 0x1003f38f
daa
jmp case.0x1003f2f5.4
jmp 0x1003ebcd
jmp 0x1003f283
jle 0x1003f3a0
jg 0x1003f3a0
sub byte [ecx + 0x31], dl
leave
push ecx
xor ecx, ecx
jecxz 0x1003f3a6
sub dword [ecx - 0x15], ebx
add dword [eax], esi
pop ecx
jmp 0x1003f3aa
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call sub.MSVCR100.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0xfc]
push ecx
call fcn.10043ef5
add esp, 8
jmp 0x1003f27b
jo 0x1003f3db
add esi, dword [ecx + 1]
jno 0x1003f3db
xor ecx, ebp
je 0x1003f3d7
jmp 0x1003ed54
invalid
jmp 0x1003f3f5
jb 0x1003f3e7
jae 0x1003f3e7
add dword [edx], esi
xor ch, bl
adc ecx, ebp
jp 0x1003f3e5
jmp 0x1003f3fa
jmp 0x1003ed68
invalid
jmp 0x1003eacf
jmp 0x1003f3fa
jmp 0x1003eacf
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret