Function at 0x2f13dd
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa0
push ebx
push ebp
push esi
mov dword [esp + 0x20], 0xdb1a
mov esi, 0xc9e28
mov ebx, dword [esp + 0x20]
mov ebp, 0x63c64
push edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], 0x4d478
cmp esi, 0x9a7c1
jg 0x2f1fa6
je 0x2f2a1c
cmp esi, ebp
jg 0x2f1912
je 0x2f18a6
cmp esi, 0x4c6e2
jg 0x2f1705
je 0x2f169a
cmp esi, 0x741d
je 0x2f1640
cmp esi, 0xba1d
je 0x2f1599
cmp esi, 0x14c1f
je 0x2f14ab
cmp esi, 0x2b917
jne 0x2f2a0b
mov dword [esp + 0x20], 0x2e319f
xor edx, edx
shl dword [esp + 0x20], 0xb
mov esi, 0x56a3b
or dword [esp + 0x20], 0xa3ad983a
mov eax, dword [esp + 0x20]
push 0x74
pop ecx
div ecx
mov dword [esp + 0x20], eax
xor dword [esp + 0x20], 0x219e19d
mov eax, dword [esp + 0x20]
mov dword [esp + 0x64], eax
jmp 0x2f140f
mov dword [esp + 0x20], 0x6afb75
xor dword [esp + 0x20], 0xb9c04df4
imul eax, dword [esp + 0x20], 0x4a
mov dword [esp + 0x20], eax
add dword [esp + 0x20], 0xffff3633
xor dword [esp + 0x20], 0xab53c198
mov eax, dword [esp + 0x20]
call 0x2ffda8
mov dword [esp + 0x18], 0xdea45
mov ecx, eax
or dword [esp + 0x18], 0x1a85c01c
xor edx, edx
xor dword [esp + 0x18], 0x1a8f631a
mov dword [esp + 0x24], 0x9f2ab7
add dword [esp + 0x24], 0xd77b
xor dword [esp + 0x24], 0xa0ecfc
mov dword [esp + 0x20], 0x10ad09
mov eax, dword [esp + 0x20]
push 0x11
pop esi
div esi
mov dword [esp + 0x20], eax
add dword [esp + 0x20], 0xffff49c2
xor dword [esp + 0x20], 0xd6c9a52c
xor dword [esp + 0x20], 0xd6cfa540
mov dword [esp + 0x14], 0xe514d2
imul eax, dword [esp + 0x14], 0x76
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x14], 0x61
mov dword [esp + 0x14], eax
lea eax, [esp + 0x3c]
xor dword [esp + 0x14], 0x270e54d
push dword [esp + 0x20]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x30]
mov edx, dword [esp + 0x28]
push ecx
lea ecx, [esp + 0x58]
call fcn.002e2b06
add esp, 0x14
mov esi, eax
neg esi
sbb esi, esi
and esi, 0xd85ae
add esi, 0x14c1f
jmp 0x2f140f
mov dword [esp + 0x24], 0x3b0519
shr dword [esp + 0x24], 3
xor dword [esp + 0x24], 0xe1c18
mov eax, dword [esp + 0x24]
call fcn.002f8a98
test eax, eax
je 0x2f1608
mov dword [esp + 0x20], 0x974879
xor edx, edx
mov eax, dword [esp + 0x20]
push 0x36
pop ecx
div ecx
mov dword [esp + 0x20], eax
imul eax, dword [esp + 0x20], 5
mov dword [esp + 0x20], eax
shl dword [esp + 0x20], 0xa
xor dword [esp + 0x20], 0x3806bf5b
mov eax, dword [esp + 0x20]
call fcn.002ef1f5
mov esi, eax
neg esi
sbb esi, esi
and esi, 0x59838
add esi, 0x85caf
jmp 0x2f140f
mov dword [esp + 0x24], 0xcf839d
xor dword [esp + 0x24], 0x67330632
xor dword [esp + 0x24], 0x67ffd0ca
mov eax, dword [esp + 0x24]
call fcn.002ef1f5
mov esi, eax
neg esi
sbb esi, esi
and esi, 0xfffa3791
add esi, 0xb27b5
jmp 0x2f140f
mov dword [esp + 0x14], 0xeeb66c
xor dword [esp + 0x14], 0x32bb25eb
add dword [esp + 0x14], 0xffff5009
xor dword [esp + 0x14], 0x32582b01
mov dword [esp + 0x20], 0x4750c3
shr dword [esp + 0x20], 0xc
shr dword [esp + 0x20], 0x10
imul eax, dword [esp + 0x20], 0x66
mov dword [esp + 0x20], eax
xor dword [esp + 0x20], 0xf801d
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
call fcn.002e4a0e
mov esi, 0x9789f
jmp 0x2f140f
mov dword [esp + 0x14], 0x44f462
xor edx, edx
imul eax, dword [esp + 0x14], 0x75
push 0x54
pop ecx
push 0x73
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
div ecx
xor edx, edx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x60d9ef
mov dword [esp + 0x24], 0x2087ac
xor dword [esp + 0x24], 0x64ad29a8
shl dword [esp + 0x24], 8
mov eax, dword [esp + 0x24]
pop ecx
div ecx
mov dword [esp + 0x20], eax
xor dword [esp + 0x20], 0x13bf0ea
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
call fcn.002fac46
mov esi, 0xc694b
jmp 0x2f140f
cmp esi, 0x4ec32
je 0x2f184f
cmp esi, 0x55f46
je 0x2f1824
cmp esi, 0x56a3b
je 0x2f178d
cmp esi, 0x6025d
jne 0x2f2a0b
mov dword [esp + 0x14], 0xe0d6d1
xor dword [esp + 0x14], 0x6f1d34b4
add dword [esp + 0x14], 0xfa67
xor dword [esp + 0x14], 0x6ff21dd7
mov dword [esp + 0x24], 0x1ff22e
xor dword [esp + 0x24], 0xab8cc3b7
xor dword [esp + 0x24], 0xab9fd657
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
call fcn.002ef3a4
mov esi, eax
neg esi
sbb esi, esi
and esi, 0x40cc5
add esi, 0xba1d
jmp 0x2f140f
mov dword [esp + 0x18], 0x120432
lea edx, [esp + 0x80]
xor dword [esp + 0x18], 0x6072682
shr dword [esp + 0x18], 9
xor dword [esp + 0x18], 0xffad3c2a
xor dword [esp + 0x18], 0xffa0a1c9
mov dword [esp + 0x1c], 0xac115c
xor dword [esp + 0x1c], 0x3ee5fd0a
imul eax, dword [esp + 0x1c], 0xf
mov dword [esp + 0x1c], eax
shl dword [esp + 0x1c], 0xe
xor dword [esp + 0x1c], 0x364a7d72
mov dword [esp + 0x20], 0x835d12
xor dword [esp + 0x20], 0x330a5eaa
or dword [esp + 0x20], 0xedd7318d
add dword [esp + 0x20], 0x634f
xor dword [esp + 0x20], 0xffde0ce0
push dword [esp + 0x20]
push dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
call fcn.002e843f
pop ecx
pop ecx
mov esi, 0xa5431
jmp 0x2f140f
mov dword [esp + 0x24], 0x7c57b4
add dword [esp + 0x24], 0xffff0d77
xor dword [esp + 0x24], 0x70affb
mov eax, dword [esp + 0x24]
call fcn.002fd544
mov esi, 0xb27b5
jmp 0x2f140f
mov dword [esp + 0x24], 0xeab76a
xor edx, edx
mov eax, dword [esp + 0x24]
push 0x38
pop ecx
div ecx
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0x71127
mov dword [esp + 0x14], 0x8915f5
or dword [esp + 0x14], 0xfc0dd776
imul eax, dword [esp + 0x14], 0x29
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x72bb0cbd
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
call fcn.002f90a6
mov esi, 0x9b236
jmp 0x2f140f
mov dword [esp + 0x1c], 0x108def
add dword [esp + 0x1c], 0x8f77
add dword [esp + 0x1c], 0xcb64
or dword [esp + 0x1c], 0xd3a28e4
xor dword [esp + 0x1c], 0xd3d26ba
mov dword [esp + 0x18], 0x43a7fa
xor dword [esp + 0x18], 0x597ee232
add dword [esp + 0x18], 0xe707
add dword [esp + 0x18], 0xffff6ce4
xor dword [esp + 0x18], 0x59377d16
push dword [esp + 0x18]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
call fcn.00300621
pop ecx
mov esi, 0xf3c58
jmp 0x2f140f
cmp esi, 0x8a830
jg 0x2f1bb7
je 0x2f1b77
cmp esi, 0x699c5
je 0x2f1b0b
cmp esi, 0x71ab2
je 0x2f1aa8
cmp esi, 0x72ba0
je 0x2f1984
cmp esi, 0x85caf
jne 0x2f2a0b
mov dword [esp + 0x14], 0xea7115
xor dword [esp + 0x14], 0x2c5d9b7b
imul eax, dword [esp + 0x14], 0x2d
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0xdc5d0c75
mov eax, dword [esp + 0x14]
call fcn.002f4d41
mov esi, 0x741d
jmp 0x2f140f
test edi, edi
je 0x2f1aa1
mov dword [esp + 0x18], 0xf2b482
xor edx, edx
add dword [esp + 0x18], 0xf732
add dword [esp + 0x18], 0xffff36e5
mov eax, dword [esp + 0x18]
push 9
pop ecx
div ecx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x1e03d1
mov eax, dword [esp + 0x18]
call 0x2ffda8
mov dword [esp + 0x14], 0xcc650e
mov ecx, eax
mov eax, dword [esp + 0x14]
xor edx, edx
push 0x13
pop esi
div esi
mov edx, edi
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 0xd
xor dword [esp + 0x14], 0x583e6102
mov dword [esp + 0x1c], 0x3b35c
shr dword [esp + 0x1c], 3
or dword [esp + 0x1c], 0xbed6eab2
imul eax, dword [esp + 0x1c], 0x1b
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x20a8c945
mov dword [esp + 0x18], 0xc76f
imul eax, dword [esp + 0x18], 0xb
mov dword [esp + 0x18], eax
add dword [esp + 0x18], 0xd20
shr dword [esp + 0x18], 7
xor dword [esp + 0x18], 0xeb389
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.002f1310
pop ecx
pop ecx
cmp eax, dword [esp + 0x14]
je 0x2f1a57
mov esi, 0xd1595
jmp 0x2f140f
mov dword [esp + 0x18], 0x121d3e
add dword [esp + 0x18], 0xffff6d2d
or dword [esp + 0x18], 0xffc3ffdf
xor dword [esp + 0x18], 0xffd38529
mov dword [esp + 0x14], 0x331964
xor dword [esp + 0x14], 0xb9e354e6
shl dword [esp + 0x14], 3
xor dword [esp + 0x14], 0xce88a860
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
call fcn.002fb98a
mov esi, ebx
jmp 0x2f2a0b
mov dword [esp + 0x24], 0xf15beb
imul eax, dword [esp + 0x24], 7
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0x69cd90c
mov eax, dword [esp + 0x24]
call fcn.002f67d1
mov dword [esp + 0x14], 0x9f3025
add dword [esp + 0x14], 0xffffa7da
imul eax, dword [esp + 0x14], 0x7a
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x4bbae78c
mov eax, dword [esp + 0x14]
call fcn.002ef1f5
mov esi, eax
neg esi
sbb esi, esi
and esi, 0xffffb3d7
add esi, 0x9313d
jmp 0x2f140f
mov dword [esp + 0x18], 0x8651d9
xor edx, edx
mov eax, dword [esp + 0x18]
push 5
pop ecx
div ecx
mov dword [esp + 0x18], eax
imul eax, dword [esp + 0x18], 0x78
mov dword [esp + 0x18], eax
add dword [esp + 0x18], 0x691
xor dword [esp + 0x18], 0xc9ee2a1
mov dword [esp + 0x14], 0x302f2a
shr dword [esp + 0x14], 2
add dword [esp + 0x14], 0x28d9
xor dword [esp + 0x14], 0x3b32e
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
call fcn.002e61e5
test eax, eax
je 0x2f2b3b
mov esi, 0x6025d
jmp 0x2f140f
mov dword [esp + 0x18], 0x39e452
shr dword [esp + 0x18], 0x10
or dword [esp + 0x18], 0x9001d9cc
add dword [esp + 0x18], 0xf11
xor dword [esp + 0x18], 0x900eb318
mov eax, dword [esp + 0x18]
call fcn.002fb6cc
test eax, eax
je 0x2f2b3b
mov esi, 0x4ec32
jmp 0x2f140f
cmp esi, 0x8e514
je 0x2f1f6d
cmp esi, 0x8f2c2
je 0x2f1eb5
cmp esi, 0x9313d
je 0x2f1e83
cmp esi, 0x9789f
jne 0x2f2a0b
mov dword [esp + 0x1c], 0x469a2a
xor edx, edx
or dword [esp + 0x1c], 0x9f7dfbf6
xor dword [esp + 0x1c], 0x9f78b95f
mov dword [esp + 0x18], 0xbc4a76
shl dword [esp + 0x18], 0xf
xor dword [esp + 0x18], 0x14738159
mov eax, dword [esp + 0x18]
push 0x6d
pop ecx
div ecx
mov ecx, 0x2e1654
mov dword [esp + 0x18], eax
lea eax, [esp + 0x38]
xor dword [esp + 0x18], 0x77cd7d
mov dword [esp + 0x20], 0xd83b18
shl dword [esp + 0x20], 0xb
shr dword [esp + 0x20], 6
xor dword [esp + 0x20], 0x3058f35
mov dword [esp + 0x14], 0x1cea6a
add dword [esp + 0x14], 0xd4a6
or dword [esp + 0x14], 0x9ba84119
xor dword [esp + 0x14], 0x9bb08f1d
push dword [esp + 0x14]
push eax
push dword [esp + 0x28]
push dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
call 0x30008a
mov dword [esp + 0x44], eax
xor edx, edx
mov dword [esp + 0x34], 0xc04d8f
mov eax, dword [esp + 0x34]
push 0x7c
pop ecx
div ecx
push 0x2f
mov dword [esp + 0x38], eax
xor edx, edx
xor dword [esp + 0x38], 0x40bf6
mov dword [esp + 0x28], 0xa2b231
shr dword [esp + 0x28], 7
add dword [esp + 0x28], 0xffff4605
xor dword [esp + 0x28], 0x9b5cc
mov dword [esp + 0x30], 0x2a8d77
add dword [esp + 0x30], 0xe2e2
mov eax, dword [esp + 0x30]
pop ecx
div ecx
push 0x43
mov dword [esp + 0x30], eax
xor edx, edx
shr dword [esp + 0x30], 1
xor dword [esp + 0x30], 0xf0c28
mov dword [esp + 0x2c], 0x9a2946
add dword [esp + 0x2c], 0xc53b
mov eax, dword [esp + 0x2c]
pop ecx
div ecx
mov ecx, 0x2e15f4
mov dword [esp + 0x28], eax
imul eax, dword [esp + 0x28], 0x2e
mov dword [esp + 0x28], eax
lea eax, [esp + 0x40]
xor dword [esp + 0x28], 0x6ff867
push dword [esp + 0x28]
push eax
push dword [esp + 0x34]
push dword [esp + 0x30]
mov edx, dword [esp + 0x44]
call 0x30008a
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], 0x40c8c9
add dword [esp + 0x38], 0xfffff408
add dword [esp + 0x38], 0x5ba4
shr dword [esp + 0x38], 5
xor dword [esp + 0x38], 0x16d3
mov dword [esp + 0x34], 0xca2efa
shr dword [esp + 0x34], 9
xor dword [esp + 0x34], 0xe0a8d5f3
xor dword [esp + 0x34], 0xe0ad2f94
push dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x58]
push eax
lea edx, [esp + 0x54]
call fcn.002e9424
mov dword [esp + 0x3c], 0x69e15f
neg eax
push 0x67
sbb esi, esi
add dword [esp + 0x40], 0xffff19e8
shr dword [esp + 0x40], 6
xor edx, edx
xor dword [esp + 0x40], 0xbcb2f
and esi, 0xb8038
mov dword [esp + 0x44], 0x8c2b31
add esi, 0x1aa7d
add dword [esp + 0x44], 0x5817
shl dword [esp + 0x44], 3
mov eax, dword [esp + 0x44]
pop ecx
div ecx
mov dword [esp + 0x40], eax
xor dword [esp + 0x40], 0x69716
push dword [esp + 0x40]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
call fcn.002e6177
mov dword [esp + 0x48], 0x40ae0d
add esp, 0x2c
mov eax, dword [esp + 0x1c]
xor edx, edx
push 0x5e
pop ecx
div ecx
push 0x1a
mov dword [esp + 0x20], eax
xor edx, edx
mov eax, dword [esp + 0x20]
pop ecx
div ecx
push 0x69
mov dword [esp + 0x20], eax
xor edx, edx
or dword [esp + 0x20], 0xfcb6bb3f
xor dword [esp + 0x20], 0xfcbc2092
mov dword [esp + 0x1c], 0xfa91b7
mov eax, dword [esp + 0x1c]
pop ecx
div ecx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0xca8668f7
add dword [esp + 0x18], 0xffff54dd
xor dword [esp + 0x18], 0xca89d39b
push dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
call fcn.002e6177
pop ecx
jmp 0x2f2a0b
mov dword [esp + 0x24], 0xee777c
xor edx, edx
mov eax, dword [esp + 0x24]
push 0x6e
pop ecx
div ecx
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0x2bcbf
mov eax, dword [esp + 0x24]
call fcn.002ed6b5
mov esi, 0x9a7c1
jmp 0x2f140f
mov dword [esp + 0x18], 0x6d5bdf
xor dword [esp + 0x18], 0x2f4e0685
shr dword [esp + 0x18], 0xe
add dword [esp + 0x18], 0x896a
xor dword [esp + 0x18], 0xcdf9a
mov eax, dword [esp + 0x18]
call fcn.002f67c8
mov esi, eax
xor edx, edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x1c], 0x10246a
imul ecx, dword [esp + 0x1c], 0x4d
push 0x3d
mov dword [esp + 0x20], ecx
shl dword [esp + 0x20], 0xc
xor dword [esp + 0x20], 0xaf3e22e7
mov dword [esp + 0x1c], 0xb612e7
add dword [esp + 0x1c], 0xffff015b
xor dword [esp + 0x1c], 0xf9b95fe9
xor dword [esp + 0x1c], 0xf90a932d
mov dword [esp + 0x18], 0xa53ea
shr dword [esp + 0x18], 6
mov eax, dword [esp + 0x18]
pop ecx
div ecx
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x93464
push dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push esi
call fcn.002e4db8
pop ecx
pop ecx
mov dword [esp + 0x6c], eax
mov esi, 0x9deb6
jmp 0x2f140f
mov dword [esp + 0x18], 0x527643
imul eax, dword [esp + 0x18], 0x2a
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x6c3d5092
shr dword [esp + 0x18], 7
xor dword [esp + 0x18], 0xc06244
mov eax, dword [esp + 0x18]
call fcn.002e9673
mov esi, 0x9313d
jmp 0x2f140f
cmp esi, 0xcf6e8
jg 0x2f258b
je 0x2f2328
cmp esi, 0xa5431
jg 0x2f21ee
je 0x2f214c
cmp esi, 0x9b236
je 0x2f20ef
cmp esi, 0x9deb6
je 0x2f20a9
cmp esi, 0xa16ca
je 0x2f2072
cmp esi, 0xa4abb
jne 0x2f2a0b
mov dword [esp + 0x14], 0xbbd5a7
add dword [esp + 0x14], 0xffff6283
shl dword [esp + 0x14], 0x10
xor dword [esp + 0x14], 0x38204e16
mov eax, dword [esp + 0x14]
call fcn.002ef1f5
test eax, eax
jne 0x2f206b
mov dword [esp + 0x18], 0x3c9a8b
shr dword [esp + 0x18], 5
add dword [esp + 0x18], 0xffff0c0e
xor dword [esp + 0x18], 0x791e327d
xor dword [esp + 0x18], 0x791c39bd
mov dword [esp + 0x24], 0x7c2663
shr dword [esp + 0x24], 0xd
xor dword [esp + 0x24], 0xeb632
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
call fcn.002f6041
mov esi, ebp
jmp 0x2f140f
mov dword [esp + 0x14], 0x9cdbf
xor dword [esp + 0x14], 0x13ed9d3e
add dword [esp + 0x14], 0x5ef4
xor dword [esp + 0x14], 0x13e17d5e
mov eax, dword [esp + 0x14]
call fcn.002fb8bf
mov dword [esp + 0x60], eax
mov esi, 0xd4930
jmp 0x2f140f
mov dword [esp + 0x18], 0xc0a637
xor edx, edx
add dword [esp + 0x18], 0xffff713d
add dword [esp + 0x18], 0xffff8f7a
mov eax, dword [esp + 0x18]
push 0x28
pop ecx
div ecx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x66ee9
mov eax, dword [esp + 0x18]
call fcn.002f4e62
mov dword [esp + 0x70], eax
mov esi, 0xc6555
jmp 0x2f140f
mov dword [esp + 0x18], 0x2ca79e
or dword [esp + 0x18], 0x4397e7a9
shl dword [esp + 0x18], 6
xor dword [esp + 0x18], 0xeff6918c
mov dword [esp + 0x14], 0xbc9bb8
imul eax, dword [esp + 0x14], 0x3c
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0xcb510400
xor dword [esp + 0x14], 0xe76a0850
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
call fcn.002eae9a
test eax, eax
je 0x2f2b3b
mov esi, 0xfd1db
jmp 0x2f140f
mov dword [esp + 0x14], 0x4b8521
xor edx, edx
add dword [esp + 0x14], 0x1414
mov eax, dword [esp + 0x14]
push 0x3b
pop ecx
div ecx
push 0x46
mov dword [esp + 0x18], eax
xor edx, edx
xor dword [esp + 0x18], 0x685d4
mov dword [esp + 0x28], 0x6ee3b3
mov eax, dword [esp + 0x28]
pop ecx
div ecx
lea edx, [esp + 0x4c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x44]
xor dword [esp + 0x24], 0x69290
mov dword [esp + 0x18], 0x4610e1
add dword [esp + 0x18], 0xffffde08
xor dword [esp + 0x18], 0xe30f29d2
or dword [esp + 0x18], 0x19034567
xor dword [esp + 0x18], 0xfb46ae01
push dword [esp + 0x18]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
push eax
call fcn.002e446d
add esp, 0xc
mov esi, eax
neg esi
sbb esi, esi
and esi, 0xfff20fc7
add esi, 0xf3c58
jmp 0x2f140f
cmp esi, 0xb27b5
je 0x2f22c5
cmp esi, 0xc6555
je 0x2f227d
cmp esi, 0xc694b
je 0x2f2220
cmp esi, 0xc9e28
jne 0x2f2a0b
mov esi, 0x8a830
jmp 0x2f140f
mov dword [esp + 0x24], 0x5d5093
add dword [esp + 0x24], 0xf9f
xor dword [esp + 0x24], 0x5cb4d8
mov dword [esp + 0x18], 0xbcdb26
imul eax, dword [esp + 0x18], 0x3d
mov dword [esp + 0x18], eax
shr dword [esp + 0x18], 0xc
or dword [esp + 0x18], 0xdd7a7515
xor dword [esp + 0x18], 0xdd7bd83d
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
call fcn.002fcd88
test eax, eax
je 0x2f2b3b
mov esi, 0x71ab2
jmp 0x2f140f
mov dword [esp + 0x14], 0x9ff978
shr dword [esp + 0x14], 0xc
xor dword [esp + 0x14], 0x97b7b
mov dword [esp + 0x24], 0x2f7629
add dword [esp + 0x24], 0xffffac90
xor dword [esp + 0x24], 0x28d163
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
call fcn.002f2b43
mov dword [esp + 0x4c], eax
mov esi, 0xa16ca
jmp 0x2f140f
mov dword [esp + 0x14], 0x92b6d0
xor edx, edx
shr dword [esp + 0x14], 0xf
add dword [esp + 0x14], 0x9835
xor dword [esp + 0x14], 0x8680f
mov dword [esp + 0x18], 0xd1cf90
mov eax, dword [esp + 0x18]
push 0x66
pop ecx
div ecx
mov dword [esp + 0x18], eax
add dword [esp + 0x18], 0xfffff81c
or dword [esp + 0x18], 0xc6fdd0ad
xor dword [esp + 0x18], 0xc6fb875f
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
call fcn.002fb1a1
mov esi, 0x4c6e2
jmp 0x2f140f
mov dword [esp + 0x14], 0x492078
xor edx, edx
mov eax, dword [esp + 0x14]
push 0x5c
pop ecx
div ecx
lea edx, [esp + 0xa8]
mov dword [esp + 0x14], eax
or dword [esp + 0x14], 0x59d68b60
xor dword [esp + 0x14], 0x59d8b0ec
mov dword [esp + 0x18], 0x5215f
add dword [esp + 0x18], 0xa12c
add dword [esp + 0x18], 0xf00
shl dword [esp + 0x18], 0xa
xor dword [esp + 0x18], 0x1745835f
mov dword [esp + 0x24], 0xec3f1c
xor dword [esp + 0x24], 0x166563a8
xor dword [esp + 0x24], 0x168462e9
push dword [esp + 0x24]
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
call fcn.002edac7
pop ecx
pop ecx
test eax, eax
je 0x2f23b1
xor edi, edi
jmp 0x2f257c
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x2f249e
mov dword [esp + 0x1c], 0xa09cb8
sub esp, 0xc
or dword [esp + 0x28], 0xcab8ff78
shl dword [esp + 0x28], 0x10
shl dword [esp + 0x28], 4
xor dword [esp + 0x28], 0xff823b00
mov dword [esp + 0x30], 0xd02f4b
add dword [esp + 0x30], 0x2359
imul eax, dword [esp + 0x30], 0x48
mov dword [esp + 0x30], eax
xor dword [esp + 0x30], 0x3a9ec39a
mov dword [esp + 0x24], 0x6c646f
shl dword [esp + 0x24], 4
add dword [esp + 0x24], 0x866e
add dword [esp + 0x24], 0x3b0a
xor dword [esp + 0x24], 0x6ccae74
mov dword [esp + 0x2c], 0x1adcff
imul eax, dword [esp + 0x2c], 0x79
mov dword [esp + 0x2c], eax
or dword [esp + 0x2c], 0xb5abd065
xor dword [esp + 0x2c], 0x3be676ed
xor dword [esp + 0x2c], 0x865039aa
mov dword [esp + 0x20], 0xc671ea
xor dword [esp + 0x20], 0x4b1e6385
add dword [esp + 0x20], 0xe10d
shr dword [esp + 0x20], 2
xor dword [esp + 0x20], 0x12f8c8ff
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
call fcn.002e26d7
mov edi, eax
add esp, 0xc
mov eax, dword [esp + 0x8c]
cmp eax, 1
jne 0x2f257c
mov dword [esp + 0x18], 0xe71bcd
xor edx, edx
shl dword [esp + 0x18], 0xb
mov eax, dword [esp + 0x18]
push 5
pop ecx
div ecx
push 0x12
mov dword [esp + 0x1c], eax
xor edx, edx
or dword [esp + 0x1c], 0xbeb0190f
xor dword [esp + 0x1c], 0xbff92f17
mov dword [esp + 0x18], 0x8fab58
xor dword [esp + 0x18], 0x952fe81f
shl dword [esp + 0x18], 1
xor dword [esp + 0x18], 0x981f4ea2
xor dword [esp + 0x18], 0xb35eeac6
mov dword [esp + 0x24], 0x2e634f
add dword [esp + 0x24], 0x9fb6
xor dword [esp + 0x24], 0x292411
mov dword [esp + 0x28], 0x156ef5
shr dword [esp + 0x28], 0xa
xor dword [esp + 0x28], 0xb3f16b24
xor dword [esp + 0x28], 0xb3f1205f
mov dword [esp + 0x20], 0x318e85
add dword [esp + 0x20], 0xffff2544
add dword [esp + 0x20], 0x727
mov eax, dword [esp + 0x20]
pop ecx
div ecx
sub esp, 0xc
mov dword [esp + 0x28], eax
xor dword [esp + 0x28], 0x2c03d
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
call fcn.002e26d7
add esp, 0xc
mov edi, eax
mov ebx, 0x56a3b
mov esi, 0xa4abb
jmp 0x2f140f
cmp esi, 0xdf4e7
jg 0x2f2787
je 0x2f2720
mov eax, esi
sub eax, 0xd1595
je 0x2f2ae1
sub eax, 0x1520
je 0x2f25ec
sub eax, 0x1e64
je 0x2f2ac1
sub eax, 0x17
jne 0x2f2a0b
mov dword [esp + 0x24], 0xba2c54
mov esi, 0x2b917
shl dword [esp + 0x24], 0xf
xor dword [esp + 0x24], 0x171e89f4
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], eax
jmp 0x2f140f
mov dword [esp + 0x14], 0x54db84
shr dword [esp + 0x14], 9
or dword [esp + 0x14], 0x7e449111
xor dword [esp + 0x14], 0x7e4e7630
mov dword [esp + 0x24], 0x81f5fd
imul eax, dword [esp + 0x24], 0x2d
mov dword [esp + 0x24], eax
or dword [esp + 0x24], 0x598bc432
xor dword [esp + 0x24], 0x5fd163af
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
call fcn.002ed0bc
mov dword [esp + 0x14], 0xaf73fe
xor edx, edx
shl dword [esp + 0x14], 6
mov ebx, 0x8f2c2
add dword [esp + 0x14], 0xede2
shr dword [esp + 0x14], 9
xor dword [esp + 0x14], 0x13e793
mov dword [esp + 0x20], 0xd1c82f
mov eax, dword [esp + 0x20]
push 0x23
pop ecx
div ecx
push 0x2c
mov dword [esp + 0x24], eax
xor edx, edx
xor dword [esp + 0x24], 0x6fd0c
mov dword [esp + 0x28], 0x8e2a7f
imul eax, dword [esp + 0x28], 0x5f
pop ecx
push 0x5b
mov dword [esp + 0x28], eax
add dword [esp + 0x28], 0x4875
xor dword [esp + 0x28], 0x34c2a27b
mov dword [esp + 0x1c], 0x75003c
imul eax, dword [esp + 0x1c], 0x73
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
div ecx
xor edx, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
pop ecx
div ecx
sub esp, 0xc
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0x37b54
mov dword [esp + 0x28], 0x289f3f
xor dword [esp + 0x28], 0xe1c9394e
add dword [esp + 0x28], 0xf82b
xor dword [esp + 0x28], 0xe1e2d0bc
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
call fcn.002e26d7
add esp, 0xc
mov edi, eax
mov esi, 0x72ba0
jmp 0x2f140f
mov dword [esp + 0x14], 0x385caa
imul eax, dword [esp + 0x14], 0x3c
mov dword [esp + 0x14], eax
add dword [esp + 0x14], 0xff36
add dword [esp + 0x14], 0xffffc651
xor dword [esp + 0x14], 0xd3d8acf
mov dword [esp + 0x24], 0x7299e1
xor dword [esp + 0x24], 0x3a0c6b00
add dword [esp + 0x24], 0xffff7729
xor dword [esp + 0x24], 0x3a77f68b
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
call fcn.002ff572
mov esi, eax
neg esi
sbb esi, esi
and esi, 0x14b12
jmp 0x2f15fd
cmp esi, 0xed1cd
je 0x2f2860
cmp esi, 0xf3c58
je 0x2f2802
cmp esi, 0xfd1db
jne 0x2f2a0b
mov dword [esp + 0x14], 0xae865b
shr dword [esp + 0x14], 0xe
shl dword [esp + 0x14], 7
shr dword [esp + 0x14], 2
xor dword [esp + 0x14], 0xf9d26
mov dword [esp + 0x24], 0x577883
shr dword [esp + 0x24], 6
or dword [esp + 0x24], 0x2ad80350
xor dword [esp + 0x24], 0x2ad9c82e
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
call fcn.002ed0bc
test eax, eax
je 0x2f2b3b
mov esi, 0x699c5
jmp 0x2f140f
mov dword [esp + 0x14], 0xb6b99f
xor edx, edx
xor dword [esp + 0x14], 0x42e7ad22
mov eax, dword [esp + 0x14]
push 0x58
pop ecx
div ecx
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0xc3a45e
mov dword [esp + 0x24], 0xcf93c4
add dword [esp + 0x24], 0xffff6701
or dword [esp + 0x24], 0x57f4d91b
xor dword [esp + 0x24], 0x57fea061
push dword [esp + 0x24]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
call fcn.00300621
pop ecx
jmp 0x2f2716
mov dword [esp + 0x1c], 0x844440
xor edx, edx
add dword [esp + 0x1c], 0xfffff897
xor dword [esp + 0x1c], 0x8e88a7
mov dword [esp + 0x14], 0xe232b2
shr dword [esp + 0x14], 3
xor dword [esp + 0x14], 0x93b7ff1b
shl dword [esp + 0x14], 4
xor dword [esp + 0x14], 0x3aba2125
mov dword [esp + 0x24], 0xd29f96
shr dword [esp + 0x24], 0xf
mov eax, dword [esp + 0x24]
push 0x3a
pop ecx
div ecx
lea edx, [esp + 0x3c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x88]
xor dword [esp + 0x24], 0xe05d
mov dword [esp + 0x18], 0x21c63a
shl dword [esp + 0x18], 0xa
xor dword [esp + 0x18], 0x871b3a76
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
push eax
call fcn.002eace0
add esp, 0x10
test eax, eax
jne 0x2f29e3
mov dword [esp + 0x24], 0xec9ed
xor edx, edx
add dword [esp + 0x24], 0xd53f
mov eax, dword [esp + 0x24]
push 0x3c
pop ecx
div ecx
push 0xc
mov dword [esp + 0x28], eax
xor edx, edx
xor dword [esp + 0x28], 0x25c53
mov dword [esp + 0x24], 0x985cab
shl dword [esp + 0x24], 7
xor dword [esp + 0x24], 0x4c2cc008
mov dword [esp + 0x18], 0xce1013
imul eax, dword [esp + 0x18], 0x76
pop ecx
push 0x63
mov dword [esp + 0x18], eax
shr dword [esp + 0x18], 8
mov eax, dword [esp + 0x18]
div ecx
xor edx, edx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0xab067
mov dword [esp + 0x20], 0x25f104
or dword [esp + 0x20], 0xe78a78ae
xor dword [esp + 0x20], 0x5cb1946c
xor dword [esp + 0x20], 0xbb13d662
mov dword [esp + 0x1c], 0xe55ddc
imul eax, dword [esp + 0x1c], 0x2c
pop ecx
sub esp, 0xc
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
div ecx
mov dword [esp + 0x24], eax
add dword [esp + 0x24], 0x69f8
xor dword [esp + 0x24], 0x68aeeb
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
call fcn.002e26d7
add esp, 0xc
mov edi, eax
mov ebx, 0x56a3b
jmp 0x2f206b
mov eax, dword [esp + 0x8c]
cmp eax, 8
jne 0x2f29f9
mov esi, 0xd4919
jmp 0x2f140f
test eax, eax
je 0x2f2a06
cmp eax, 1
jne 0x2f206b
mov esi, 0xcf6e8
cmp esi, 0x1aa7d
jne 0x2f140f
jmp 0x2f2b3b
mov dword [esp + 0x18], 0xc5c229
xor edx, edx
imul eax, dword [esp + 0x18], 0x77
push 0x3d
pop ecx
push ecx
mov dword [esp + 0x1c], eax
shl dword [esp + 0x1c], 6
mov eax, dword [esp + 0x1c]
div ecx
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x412434e
mov dword [esp + 0x18], 0xd2ae37
add dword [esp + 0x18], 0x5e5b
shl dword [esp + 0x18], 0xf
add dword [esp + 0x18], 0xffff7094
xor dword [esp + 0x18], 0x864c03b4
mov dword [esp + 0x28], 0x5d969a
add dword [esp + 0x28], 0x1fc7
add dword [esp + 0x28], 0xa7d7
xor dword [esp + 0x28], 0x5ca531
mov dword [esp + 0x20], 0x1378c5
add dword [esp + 0x20], 0xf6a2
xor dword [esp + 0x20], 0x1d1e56
push dword [esp + 0x20]
push dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
call fcn.002ee5d7
add esp, 0xc
jmp 0x2f2b3b
mov dword [esp + 0x24], 0x5c0b64
shl dword [esp + 0x24], 0xb
xor dword [esp + 0x24], 0xe050a053
mov eax, dword [esp + 0x24]
call fcn.002e7daa
jmp 0x2f2b3b
mov dword [esp + 0x24], 0x36e9af
xor edx, edx
xor dword [esp + 0x24], 0x76e17d70
imul eax, dword [esp + 0x24], 0x2d
push 0xb
pop ecx
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0xe3e4293a
mov dword [esp + 0x14], 0x4f0cc7
xor dword [esp + 0x14], 0x5a03072
mov eax, dword [esp + 0x14]
div ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 0xd
xor dword [esp + 0x14], 0x439de6b5
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
call fcn.002e3ff6
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret