Function at 0x16a83d
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x50
push ebx
push ebp
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
push esi
push edi
push dword [esp + 0x90]
movzx eax, ax
push dword [esp + 0x90]
mov dword [esp + 0x4c], edx
push dword [esp + 0x90]
push ebp
push dword [esp + 0x90]
push dword [esp + 0x90]
push eax
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
push edx
push ecx
call fcn.00163128
mov edi, dword [esp + 0xb0]
add esp, 0x38
mov dword [esp + 0x54], 0x78a4d
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x58], 0x96190
mov dword [esp + 0x5c], 0xfaf42
mov esi, 0xf0d63
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], 0x2d
mov dword [esp + 0x48], 0x7b
mov edx, 0x783e6
mov eax, 0xc17f3
push 0x29
pop ecx
cmp esi, 0x6d7ef
jg 0x16afe9
je 0x16ae47
mov eax, 0x141a
cmp esi, eax
je 0x16acb4
cmp esi, 0x1b5e3
je 0x16abff
cmp esi, 0x1f65b
je 0x16a9c4
cmp esi, 0x41456
je 0x16b7fe
cmp esi, 0x481da
jne 0x16b7e8
mov dword [esp + 0x1c], 0x4fc871
xor edx, edx
mov eax, dword [esp + 0x1c]
push 0xf
pop ecx
div ecx
push dword [esp + 0x38]
mov dword [esp + 0x20], eax
xor dword [esp + 0x20], 0x24be3
mov dword [esp + 0x24], 0xa1b42e
shl dword [esp + 0x24], 9
xor dword [esp + 0x24], 0x436398cf
mov dword [esp + 0x28], 0x9fb41c
shr dword [esp + 0x28], 0x10
xor dword [esp + 0x28], 0x93021
mov dword [esp + 0x2c], 0xdedba5
add dword [esp + 0x2c], 0xffff0e2e
xor dword [esp + 0x2c], 0xd3cc1c
push dword [esp + 0x2c]
push dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
call fcn.00171ae1
add esp, 0xc
mov esi, 0x41456
jmp 0x16a8e1
mov dword [esp + 0x28], 0xdec936
xor edx, edx
shl dword [esp + 0x28], 0xe
mov eax, dword [esp + 0x28]
push 0x17
pop ecx
div ecx
push 0x2d
mov dword [esp + 0x2c], eax
xor edx, edx
xor dword [esp + 0x2c], 0x7c09442
mov dword [esp + 0x2c], 0x719b49
xor dword [esp + 0x2c], 0x771e6830
add dword [esp + 0x2c], 0x3a20
xor dword [esp + 0x2c], 0x777aee82
mov dword [esp + 0x24], 0x3c41c3
xor dword [esp + 0x24], 0x36c84d07
xor dword [esp + 0x24], 0x918fdabd
shr dword [esp + 0x24], 7
xor dword [esp + 0x24], 0x14bc23e
mov dword [esp + 0x2c], 0xcabd6a
xor dword [esp + 0x2c], 0xba5e265
add dword [esp + 0x2c], 0x184c
xor dword [esp + 0x2c], 0xb69959f
mov dword [esp + 0x24], 0x5105c1
shl dword [esp + 0x24], 0xe
imul eax, dword [esp + 0x24], 0x53
pop ecx
mov dword [esp + 0x20], eax
or dword [esp + 0x20], 0x1f83ce9
xor dword [esp + 0x20], 0x37f264f8
mov dword [esp + 0x20], 0xbe1893
xor dword [esp + 0x20], 0x7c1a238e
add dword [esp + 0x20], 0xffff4fa8
add dword [esp + 0x20], 0x3a5
xor dword [esp + 0x20], 0x7ca81967
mov dword [esp + 0x30], 0x454865
imul eax, dword [esp + 0x30], 0x6d
mov dword [esp + 0x30], eax
xor dword [esp + 0x30], 0x1d79ff85
mov dword [esp + 0x30], 0xa53a6a
shl dword [esp + 0x30], 6
xor dword [esp + 0x30], 0x29421acc
mov dword [esp + 0x20], 0xcfc944
shr dword [esp + 0x20], 5
add dword [esp + 0x20], 0x5a0a
mov eax, dword [esp + 0x20]
div ecx
mov dword [esp + 0x20], eax
xor dword [esp + 0x20], 0x26f0
mov dword [esp + 0x20], 0x93cd2e
add dword [esp + 0x20], 0xffff73a5
add dword [esp + 0x20], 0xdf65
shr dword [esp + 0x20], 6
xor dword [esp + 0x20], 0x32fe1
mov dword [esp + 0x20], 0x832484
shl dword [esp + 0x20], 0xe
add dword [esp + 0x20], 0xffff9604
shl dword [esp + 0x20], 0xf
xor dword [esp + 0x20], 0x4b09e915
mov dword [esp + 0x28], 0x53324c
shl dword [esp + 0x28], 0x10
add dword [esp + 0x28], 0xfffff8ae
xor dword [esp + 0x28], 0x324daf51
mov dword [esp + 0x28], 0xffa79e
shl dword [esp + 0x28], 4
xor dword [esp + 0x28], 0xbb4e47b2
xor dword [esp + 0x28], 0xb4bb7f08
mov dword [esp + 0x28], 0x12fe79
shr dword [esp + 0x28], 5
xor dword [esp + 0x28], 0x715af5b5
xor dword [esp + 0x28], 0x7150e64e
mov dword [esp + 0x20], 0x420844
shr dword [esp + 0x20], 0xf
or dword [esp + 0x20], 0x56a8e93d
xor dword [esp + 0x20], 0xaecf8b03
xor dword [esp + 0x20], 0xf86a446e
mov dword [esp + 0x30], 0x656bbc
or dword [esp + 0x30], 0x507559df
xor dword [esp + 0x30], 0x507cef33
mov dword [esp + 0x20], 0xedf93c
shr dword [esp + 0x20], 7
mov esi, 0x6d7ef
add dword [esp + 0x20], 0x8895
add dword [esp + 0x20], 0x3b8f
xor dword [esp + 0x20], 0xb681
jmp 0x16a8e1
mov dword [esp + 0x20], 0x61b984
xor edx, edx
shr dword [esp + 0x20], 4
add dword [esp + 0x20], 0xffffa4b7
xor dword [esp + 0x20], 0xafeae
mov dword [esp + 0x10], 0xc82c70
shl dword [esp + 0x10], 4
shl dword [esp + 0x10], 4
shr dword [esp + 0x10], 0xf
xor dword [esp + 0x10], 0x81ba6
mov dword [esp + 0x24], 0x349d98
mov eax, dword [esp + 0x24]
push 0x4d
pop ecx
div ecx
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0xaaeb3
mov dword [esp + 0x28], 0x74f1a6
add dword [esp + 0x28], 0xc0cd
xor dword [esp + 0x28], 0x7915fa
mov ecx, dword [ebp]
test ecx, ecx
je 0x16ac7e
mov eax, dword [ebp + 4]
jmp 0x16ac80
xor eax, eax
mov edx, dword [esp + 0x44]
push edi
push dword [esp + 0x2c]
push eax
push dword [esp + 0x30]
push dword [esp + 0x20]
push dword [esp + 0x34]
push ecx
call fcn.00179e29
add esp, 0x1c
neg eax
sbb esi, esi
and esi, 0xfffec6cb
add esi, 0xd30ba
jmp 0x16a8e1
mov dword [esp + 0x28], 0xbe9dad
xor edx, edx
imul eax, dword [esp + 0x28], 0x29
push 0x5e
pop ecx
push 0x38
mov dword [esp + 0x2c], eax
shr dword [esp + 0x2c], 7
xor dword [esp + 0x2c], 0x3d0e82
mov dword [esp + 0x20], 0x7a7133
imul eax, dword [esp + 0x20], 0x61
mov dword [esp + 0x20], eax
shl dword [esp + 0x20], 6
xor dword [esp + 0x20], 0x2727731
xor dword [esp + 0x20], 0x9b41e61c
mov dword [esp + 0x34], 0x415cff
shl dword [esp + 0x34], 0xc
xor dword [esp + 0x34], 0x15cfb5cb
mov dword [esp + 0x1c], 0xab5a98
xor dword [esp + 0x1c], 0xae496987
imul eax, dword [esp + 0x1c], 0x41
mov dword [esp + 0x1c], eax
imul eax, dword [esp + 0x1c], 0x3d
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0xa57a758c
mov dword [esp + 0x18], 0x25c7f8
or dword [esp + 0x18], 0x9edeff8c
mov eax, dword [esp + 0x18]
div ecx
pop ecx
mov dword [esp + 0x14], eax
xor edx, edx
add dword [esp + 0x14], 0xffffb297
xor dword [esp + 0x14], 0x1ba544b
mov dword [esp + 0x24], 0xd9f13
xor dword [esp + 0x24], 0xa28b160c
shr dword [esp + 0x24], 0xe
xor dword [esp + 0x24], 0x24e69
mov dword [esp + 0x20], 0x2f93d2
shl dword [esp + 0x20], 0xe
add dword [esp + 0x20], 0xffff4688
xor dword [esp + 0x20], 0xe4fe912d
mov dword [esp + 0x2c], 0xe47d58
or dword [esp + 0x2c], 0xace6d409
xor dword [esp + 0x2c], 0xace03b60
mov dword [esp + 0x10], 0xdad0d4
mov eax, dword [esp + 0x10]
div ecx
push ecx
mov dword [esp + 0x14], eax
or dword [esp + 0x14], 0xfc22f969
imul eax, dword [esp + 0x14], 0x39
push ecx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x24044b41
push dword [esp + 0x18]
push dword [esp + 0x38]
push ecx
push dword [esp + 0x8c]
push dword [esp + 0x58]
push dword [esp + 0x3c]
push dword [esp + 0x44]
push dword [esp + 0x38]
push dword [esp + 0xb4]
push ecx
push dword [esp + 0x58]
push dword [esp + 0x4c]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
call fcn.0016b93a
add esp, 0x38
mov dword [esp + 0x38], eax
test eax, eax
mov esi, 0x41456
mov eax, 0xc17f3
mov edx, 0x783e6
cmovne esi, eax
jmp 0x16a8eb
mov dword [esp + 0x1c], 0x50c9cf
shl dword [esp + 0x1c], 8
add dword [esp + 0x1c], 0xffff0c08
shr dword [esp + 0x1c], 8
xor dword [esp + 0x1c], 0x50c8db
mov dword [esp + 0x2c], 0xd8e2e0
xor dword [esp + 0x2c], 0xc92ab15f
xor dword [esp + 0x2c], 0xc9f2762d
mov dword [esp + 0x14], 0xbdb02b
or dword [esp + 0x14], 0x8a2ae8c6
add dword [esp + 0x14], 0xffffe912
add dword [esp + 0x14], 0x643f
xor dword [esp + 0x14], 0x8ac34281
mov dword [esp + 0x18], 0x14f72a
shr dword [esp + 0x18], 0xf
imul eax, dword [esp + 0x18], 0xf
mov dword [esp + 0x18], eax
add dword [esp + 0x18], 0xa677
xor dword [esp + 0x18], 0x22d8e
mov dword [esp + 0x28], 0x3195bf
or dword [esp + 0x28], 0x7b0abfe9
add dword [esp + 0x28], 0x232
xor dword [esp + 0x28], 0x7b3f0ca9
mov dword [esp + 0x30], 0x66c9d3
shr dword [esp + 0x30], 2
xor dword [esp + 0x30], 0x166bff
push dword [esp + 0x30]
sub esp, 0xc
push dword [esp + 0x38]
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
call fcn.00169551
mov dword [esp + 0x34], 0xa6f5c0
test eax, eax
mov dword [esp + 0x60], eax
mov esi, 0x81c7
mov eax, 0x141a
cmovne esi, eax
xor dword [esp + 0x34], 0x5a214432
xor dword [esp + 0x34], 0x806a01aa
xor edx, edx
add dword [esp + 0x34], 0xe6fb
xor dword [esp + 0x34], 0xdae7f174
mov dword [esp + 0x48], 0x8af558
shl dword [esp + 0x48], 0xc
xor dword [esp + 0x48], 0x78c3b7cc
xor dword [esp + 0x48], 0xd79312ac
mov dword [esp + 0x38], 0x6cbff1
shl dword [esp + 0x38], 6
xor dword [esp + 0x38], 0x5c01e0c8
or dword [esp + 0x38], 0x749bd185
xor dword [esp + 0x38], 0x77b4ab13
mov dword [esp + 0x3c], 0x4e15b7
shl dword [esp + 0x3c], 0xb
mov eax, dword [esp + 0x3c]
push 0x28
pop ecx
div ecx
mov dword [esp + 0x3c], eax
shl dword [esp + 0x3c], 2
xor dword [esp + 0x3c], 0xb4a3c05
push dword [esp + 0x3c]
push 0
push dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
call fcn.001685d0
add esp, 0x2c
jmp 0x16b7e0
cmp esi, edx
je 0x16b7c8
cmp esi, 0xbf785
je 0x16b769
cmp esi, eax
je 0x16b0c6
cmp esi, 0xd30ba
je 0x16b023
cmp esi, 0xf0d63
jne 0x16b7ed
mov esi, 0x1f65b
jmp 0x16a8ee
mov dword [esp + 0x18], 0x23e3c
xor edx, edx
shl dword [esp + 0x18], 0xb
mov eax, dword [esp + 0x18]
push 0x4e
pop ecx
div ecx
push edi
mov dword [esp + 0x1c], eax
add dword [esp + 0x1c], 0xeaa7
xor dword [esp + 0x1c], 0x32271b
mov dword [esp + 0x2c], 0x6d3543
shl dword [esp + 0x2c], 0xd
shl dword [esp + 0x2c], 0xa
xor dword [esp + 0x2c], 0xa18913b3
mov dword [esp + 0x34], 0x5a9657
xor dword [esp + 0x34], 0xc121dba9
xor dword [esp + 0x34], 0xc17bacc9
mov dword [esp + 0x20], 0xf63154
add dword [esp + 0x20], 0xffffb312
shl dword [esp + 0x20], 0xe
shl dword [esp + 0x20], 5
xor dword [esp + 0x20], 0x233441c8
push dword [esp + 0x20]
push dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
call fcn.00171ae1
add esp, 0xc
mov esi, 0x481da
jmp 0x16a8e1
cmp dword [ebp], 0
je 0x16b167
mov dword [esp + 0x28], 0x30ba30
imul eax, dword [esp + 0x28], 0x27
mov dword [esp + 0x28], eax
xor dword [esp + 0x28], 0x76f744a
mov dword [esp + 0x2c], 0x7ae04d
add dword [esp + 0x2c], 0xffff2548
xor dword [esp + 0x2c], 0x756c0f
mov dword [esp + 0x30], 0x758ea0
or dword [esp + 0x30], 0xf41fa914
xor dword [esp + 0x30], 0xf472a0f4
mov dword [esp + 0x1c], 0xd91264
xor dword [esp + 0x1c], 0x68eb6c84
imul eax, dword [esp + 0x1c], 0x3f
mov dword [esp + 0x1c], eax
shl dword [esp + 0x1c], 0xc
xor dword [esp + 0x1c], 0xd397d201
push dword [esp + 0x1c]
push dword [esp + 0x34]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push 0x161764
call fcn.0016e533
add esp, 0xc
mov edi, eax
mov dword [esp + 0x3c], edi
push 0x29
pop ecx
jmp 0x16b16b
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x10], 0xeebf4f
xor edx, edx
xor dword [esp + 0x10], 0x784785b2
xor dword [esp + 0x10], 0x78a9bafd
mov dword [esp + 0x14], 0x16b15e
xor dword [esp + 0x14], 0xd71c3fa6
xor dword [esp + 0x14], 0xd70acef8
mov dword [esp + 0x20], 0x50accf
shr dword [esp + 0x20], 0xf
xor dword [esp + 0x20], 0x4000a1
mov dword [esp + 0x28], 0x83cc6a
add dword [esp + 0x28], 0xffffb80e
add dword [esp + 0x28], 0x6137
xor dword [esp + 0x28], 0x87e5af
mov dword [esp + 0x24], 0xebf4ba
add dword [esp + 0x24], 0xe45f
xor dword [esp + 0x24], 0x4ecd919
mov dword [esp + 0x18], 0xade47
shr dword [esp + 0x18], 0xe
mov eax, dword [esp + 0x18]
div ecx
mov esi, dword [esp + 0x88]
mov dword [esp + 0x18], eax
or dword [esp + 0x18], 0x84b2f63f
xor dword [esp + 0x18], 0x84baf63f
mov dword [esp + 0x2c], 0xaa0bf1
xor dword [esp + 0x2c], 0x48330675
xor dword [esp + 0x2c], 0x48990f84
mov dword [esp + 0x30], 0xdb4e31
imul eax, dword [esp + 0x30], 0x15
mov dword [esp + 0x30], eax
xor eax, eax
xor dword [esp + 0x30], 0x11fd6b05
inc eax
mov dword [esp + 0x1c], 0xb1530b
add dword [esp + 0x1c], 0x6c34
shl dword [esp + 0x1c], 3
add dword [esp + 0x1c], 0xffff8f41
xor dword [esp + 0x1c], 0x858d8939
mov ecx, dword [esp + 0x1c]
or ecx, dword [esp + 0x30]
or ecx, dword [esp + 0x2c]
or ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x24]
or ecx, dword [esp + 0x28]
or ecx, dword [esp + 0x20]
or ecx, dword [esp + 0x14]
or ecx, dword [esp + 0x10]
and esi, eax
je 0x16b31e
mov dword [esp + 0x30], 0x9eebbc
xor edx, edx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], 0x2f
div dword [esp + 0x30]
mov dword [esp + 0x30], eax
xor dword [esp + 0x30], 0x3719c
mov dword [esp + 0x18], 0xa57900
xor dword [esp + 0x18], 0x66e47717
add dword [esp + 0x18], 0xf065
xor dword [esp + 0x18], 0xf1641b79
xor dword [esp + 0x18], 0x9725c505
mov dword [esp + 0x1c], 0x21af5
add dword [esp + 0x1c], 0xffff9104
or dword [esp + 0x1c], 0x1c2aa4c9
shl dword [esp + 0x1c], 8
xor dword [esp + 0x1c], 0x2b2ff900
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x18]
or eax, dword [esp + 0x30]
or ecx, eax
mov dword [esp + 0x20], 0xffd2df
xor edx, edx
or dword [esp + 0x20], 0xb2213557
add dword [esp + 0x20], 0xffff185d
mov eax, dword [esp + 0x20]
div dword [esp + 0x48]
xor edx, edx
mov dword [esp + 0x30], 0x56
mov dword [esp + 0x20], eax
xor dword [esp + 0x20], 0x17dbf16
mov dword [esp + 0x10], 0x6d91d
xor dword [esp + 0x10], 0x7e26289a
add dword [esp + 0x10], 0x7f8b
shl dword [esp + 0x10], 0x10
xor dword [esp + 0x10], 0x711f7828
mov dword [esp + 0x14], 0xad0bde
mov eax, dword [esp + 0x14]
div dword [esp + 0x30]
xor edx, edx
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0xb6dea56e
or dword [esp + 0x14], 0xa2a869e
xor dword [esp + 0x14], 0xbef3f471
mov dword [esp + 0x28], 0xff3dbd
shr dword [esp + 0x28], 8
imul eax, dword [esp + 0x28], 0x60
push dword [esp + 0x38]
mov dword [esp + 0x2c], eax
xor dword [esp + 0x2c], 0x5500a5
mov dword [esp + 0x34], 0x337806
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], 0x1d
div dword [esp + 0x34]
xor edx, edx
mov dword [esp + 0x34], eax
xor dword [esp + 0x34], 0x7ee38
mov dword [esp + 0x1c], 0x3f5713
add dword [esp + 0x1c], 0x944a
or dword [esp + 0x1c], 0xfcbbf177
xor dword [esp + 0x1c], 0xfcb07773
mov dword [esp + 0x20], 0x9cb730
mov eax, dword [esp + 0x20]
div dword [esp + 0x50]
mov dword [esp + 0x20], eax
xor dword [esp + 0x20], 0x4afc1da9
shr dword [esp + 0x20], 0xf
xor dword [esp + 0x20], 0xb56f6
push dword [esp + 0x20]
push ecx
push ecx
push dword [esp + 0x28]
push dword [esp + 0x44]
push dword [esp + 0x40]
push dword [esp + 0x30]
push dword [esp + 0x30]
mov edx, dword [esp + 0x44]
push ecx
push edi
push ecx
push ecx
mov ecx, dword [esp + 0xa8]
call fcn.00164761
mov dword [esp + 0x64], 0x259f9f
mov edi, eax
imul eax, dword [esp + 0x64], 0x45
xor edx, edx
push 0x65
pop ecx
mov dword [esp + 0x64], eax
xor dword [esp + 0x64], 0xa233a0d
mov dword [esp + 0x5c], 0xeb66b4
add dword [esp + 0x5c], 0xffff74a3
imul eax, dword [esp + 0x5c], 0x1d
mov dword [esp + 0x5c], eax
xor dword [esp + 0x5c], 0x1a9c303b
mov dword [esp + 0x54], 0x59427e
or dword [esp + 0x54], 0x6c489e5a
add dword [esp + 0x54], 0xffff444f
mov eax, dword [esp + 0x54]
div ecx
mov dword [esp + 0x54], eax
xor dword [esp + 0x54], 0x111ef62
mov eax, dword [esp + 0x70]
push eax
push dword [esp + 0x58]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
call fcn.00164fd3
add esp, 0x3c
test edi, edi
je 0x16b0bc
xor eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], 0x587ede
shr dword [esp + 0x28], 7
add dword [esp + 0x28], 0xffff297e
xor dword [esp + 0x28], 0xffffda3a
mov dword [esp + 0x20], 0xe93da4
shl dword [esp + 0x20], 0xd
shl dword [esp + 0x20], 8
or dword [esp + 0x20], 0xb750446a
xor dword [esp + 0x20], 0xb7db4a9d
mov dword [esp + 0x24], 0xedf614
mov eax, dword [esp + 0x24]
push 0x7b
pop ecx
div ecx
mov dword [esp + 0x24], eax
lea eax, [esp + 0x34]
xor dword [esp + 0x24], 0xeacd9
mov dword [esp + 0x2c], 0xf3241b
shr dword [esp + 0x2c], 8
xor dword [esp + 0x2c], 0xa3c98
mov dword [esp + 0x30], 0x70bc7b
shl dword [esp + 0x30], 0xe
xor dword [esp + 0x30], 0x2f19ec45
push dword [esp + 0x30]
push dword [esp + 0x30]
push edi
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
mov edx, dword [esp + 0x40]
push 4
pop ecx
call fcn.0017a43e
add esp, 0x18
test esi, esi
je 0x16b75f
mov dword [esp + 0x1c], 0x20ab46
xor edx, edx
imul eax, dword [esp + 0x1c], 0x73
push 0x52
pop ecx
mov dword [esp + 0x1c], eax
shl dword [esp + 0x1c], 0x10
add dword [esp + 0x1c], 0x9bd4
xor dword [esp + 0x1c], 0xf0729bcb
mov dword [esp + 0x18], 0x9cc26f
add dword [esp + 0x18], 0xffff79f7
xor dword [esp + 0x18], 0x902181a5
xor dword [esp + 0x18], 0x90b23899
mov dword [esp + 0x20], 0x5d42f4
shr dword [esp + 0x20], 0xa
add dword [esp + 0x20], 0x7794
mov eax, dword [esp + 0x20]
div ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x34]
xor dword [esp + 0x20], 0x543f
mov dword [esp + 0x24], 0x54d89d
xor dword [esp + 0x24], 0x69dadbbe
xor dword [esp + 0x24], 0x988a88bb
xor dword [esp + 0x24], 0xf10e6c93
mov dword [esp + 0x28], 0x2f1420
or dword [esp + 0x28], 0xec7e7d0
shr dword [esp + 0x28], 0xc
xor dword [esp + 0x28], 0x2e4fc
push dword [esp + 0x28]
push dword [esp + 0x28]
push edi
push eax
push dword [esp + 0x30]
push dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
call fcn.0017cbae
or dword [esp + 0x4c], 0x100
xor edx, edx
mov dword [esp + 0x3c], 0x28c96a
mov eax, dword [esp + 0x3c]
push 0x5b
pop ecx
div ecx
mov dword [esp + 0x3c], eax
add dword [esp + 0x3c], 0x4047
xor dword [esp + 0x3c], 0xb31b
mov dword [esp + 0x40], 0x3ced3d
xor dword [esp + 0x40], 0xcac4b7f
shl dword [esp + 0x40], 0xd
xor dword [esp + 0x40], 0x14ce364d
mov dword [esp + 0x30], 0x70f69
add dword [esp + 0x30], 0xffffe0ff
shr dword [esp + 0x30], 0xc
add dword [esp + 0x30], 0x8569
xor dword [esp + 0x30], 0x9f702
mov dword [esp + 0x34], 0x89edd1
shr dword [esp + 0x34], 0xd
or dword [esp + 0x34], 0xf55368ef
xor dword [esp + 0x34], 0xf558c885
mov dword [esp + 0x38], 0x81e80
imul eax, dword [esp + 0x38], 0x75
mov dword [esp + 0x38], eax
lea eax, [esp + 0x4c]
shl dword [esp + 0x38], 0xc
add dword [esp + 0x38], 0xffff842a
xor dword [esp + 0x38], 0x5f0ed252
push dword [esp + 0x38]
push dword [esp + 0x38]
push edi
push eax
push dword [esp + 0x40]
push dword [esp + 0x54]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x80]
call fcn.0017a43e
add esp, 0x30
mov esi, 0x1b5e3
jmp 0x16a8e1
mov dword [esp + 0x28], 0xc72cf4
mov ecx, edi
add dword [esp + 0x28], 0xf87a
add dword [esp + 0x28], 0x1c52
xor dword [esp + 0x28], 0xc841d3
mov edx, dword [esp + 0x28]
call fcn.0016577c
mov dword [esp + 0x28], 0x5b682c
mov ecx, eax
shr dword [esp + 0x28], 7
mov esi, 0xd30ba
shl dword [esp + 0x28], 6
mov edx, 0x783e6
xor dword [esp + 0x28], 0x2db4c8
mov eax, dword [esp + 0x28]
cmp ecx, eax
cmove esi, edx
jmp 0x16a8e6
mov edx, dword [esp + 0x70]
mov ecx, edi
call fcn.001738ac
test eax, eax
mov esi, 0xd30ba
push 1
pop eax
cmovne ebx, eax
push 0x29
mov edx, 0x783e6
pop ecx
mov eax, 0xc17f3
cmp esi, 0x81c7
jne 0x16a8ee
jmp 0x16b893
mov dword [esp + 0x24], 0x137dae
xor edx, edx
or dword [esp + 0x24], 0xb8e0bc29
add dword [esp + 0x24], 0xffff6674
xor dword [esp + 0x24], 0xb8f69955
mov dword [esp + 0x28], 0x7c7301
shl dword [esp + 0x28], 0x10
add dword [esp + 0x28], 0xffffe1ef
xor dword [esp + 0x28], 0x730fd155
mov dword [esp + 0x78], 0x54ded3
shr dword [esp + 0x78], 7
mov eax, dword [esp + 0x78]
div ecx
push dword [esp + 0x40]
mov dword [esp + 0x7c], eax
xor dword [esp + 0x7c], 0x429ee
mov dword [esp + 0x34], 0x680953
add dword [esp + 0x34], 0xfeb1
xor dword [esp + 0x34], 0x61209c
push dword [esp + 0x34]
push dword [esp + 0x80]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
call fcn.00171ae1
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x50
ret