Function at 0x10009010
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x18c
push ebx
push ebp
push esi
xor esi, esi
xor ebp, ebp
push edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x6c], 0xd4b8fb89
xor edi, edi
mov dword [esp + 0x5c], 0x94aa203c
mov dword [esp + 0x78], 0xb60ac81b
mov dword [esp + 0x70], 0xf0adc209
mov ecx, 0x78737a02
mov dword [esp + 0x74], esi
lea ecx, [ecx]
add ecx, 0x878c85ff
cmp ecx, 0x1a
ja case.0x100090af.2020833806
jmp dword [ecx*4 + 0x10009df0]
mov ecx, dword [esp + 0x64]
xor ecx, 0x4b85f2fc
jmp 0x100090a0
mov eax, dword [esp + 0x5c]
add eax, 0x4e5b467e
cdq
mov ebx, 0x7fffffff
idiv ebx
xor dword [esp + 0x6c], 0xfc94ff7b
xor dword [esp + 0x78], 0x9d64fe10
xor dword [esp + 0x70], 0x1967c86c
mov ecx, 0x78737a16
mov dword [esp + 0x64], 0x11a7b796
mov dword [esp + 0x2c], 0x30a9d345
mov dword [esp + 0x5c], edx
jmp 0x100090a0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
push 0xde07a53b
push 0x9f77c889
push eax
push ecx
call fcn.10013550
mov ebx, eax
mov eax, dword [esp + 0x34]
add ebx, 0x9bff08e5
adc edx, 0xa204190f
mov dword [esp + 0x8c], edx
mov edx, eax
xor edx, 0xd4d51ec2
mov esi, edi
shr esi, 4
mov ecx, esi
and esi, 1
not ecx
and ecx, 1
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x24]
add edx, ebp
mov dword [esp + 0x34], edx
add eax, 0xd13c1ab1
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, esi
imul eax, dword [esp + 0x24]
imul edx, ecx
add edx, eax
mov dword [esp + 0x24], edx
mov edx, esi
imul edx, dword [esp + 0x50]
mov eax, ecx
imul eax, eax, 0x70321580
add edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], edx
add eax, 0x26f40345
cdq
idiv ebp
mov eax, esi
imul eax, dword [esp + 0x20]
mov ebp, esi
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], edx
imul ebp, eax
mov edx, eax
xor edx, 0xecc7753f
imul edx, ecx
add edx, ebp
mov dword [esp + 0x30], edx
mov eax, esi
imul eax, dword [esp + 0x14]
mov edx, ecx
imul edx, edx, 0x32188d04
sub eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov edx, eax
xor edx, 0x9ca7ce83
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x10]
add edx, ebp
add eax, 0x47cdd0c0
mov dword [esp + 0x28], edx
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, esi
imul eax, dword [esp + 0x10]
imul edx, ecx
add edx, eax
mov dword [esp + 0x10], edx
mov eax, ecx
imul eax, eax, 0x6691647
mov edx, esi
imul edx, dword [esp + 0x3c]
add edx, eax
mov dword [esp + 0x3c], edx
mov eax, ecx
imul eax, eax, 0x1c798db2
mov edx, esi
imul edx, dword [esp + 0x18]
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, ecx
imul eax, eax, 0x5d38d893
mov edx, esi
imul edx, dword [esp + 0x38]
sub edx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], edx
mov edx, eax
xor edx, 0x5d2b42eb
imul edx, ecx
mov ebp, esi
imul ebp, eax
add edx, ebp
mov eax, dword [esp + 0x40]
mov dword [esp + 0x58], edx
mov edx, eax
xor edx, 0xd7fbb17f
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x44]
add edx, ebp
mov dword [esp + 0x40], edx
mov edx, eax
xor edx, 0xc970a068
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x48]
add edx, ebp
imul esi, eax
mov dword [esp + 0x44], edx
mov edx, eax
mov eax, dword [esp + 0x8c]
xor edx, 0x8cd917c6
imul edx, ecx
add edx, esi
mov dword [esp + 0x48], edx
or edi, 0x10
mov edx, eax
mov ecx, ebx
add ecx, 0x389e7e1f
adc edx, 0x9bebea5f
mov esi, 0xc76181e1
sub esi, ebx
mov ebp, 0x641415a0
sbb ebp, eax
or edx, ebp
or ecx, esi
mov ebp, eax
mov esi, ebx
and esi, 0x389e7e1f
and ebp, 0x9bebea5f
sub ecx, esi
sbb edx, ebp
or eax, 0x641415a0
or ebx, 0xc76181e0
add ecx, ebx
adc edx, eax
add ecx, 0x389e7e20
mov ecx, dword [esp + 0x4c]
adc edx, 0x9bebea5f
mov eax, edx
shr eax, 0x1f
not eax
and eax, 1
mov edx, 0
sete dl
mov ebp, dword [esp + 0x68]
mov esi, ecx
xor ecx, 0x7da15204
xor esi, 0x7da1521a
imul ecx, eax
imul edx, esi
add ecx, edx
xor esi, esi
jmp 0x100090a0
mov ecx, dword [esp + 0x6c]
xor ecx, 0xa5107921
jmp 0x100090a0
mov ecx, dword [esp + 0x50]
xor ecx, 0x6ffb60d9
jmp 0x100090a0
mov eax, dword [esp + 0x1a0]
mov ecx, dword [eax]
mov edx, dword [esp + 0x1a8]
mov eax, dword [edx]
push 0x104
lea ecx, [ecx + eax + 2]
push ecx
lea edx, [esp + 0xa0]
push edx
call fcn.100135a0
mov ecx, dword [esp + 0x1b0]
add esp, 0xc
lea eax, [esp + 0x98]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
add eax, 0xeca50d1
cdq
mov ebx, 0x7fffffff
idiv ebx
mov esi, edi
shr esi, 7
mov ecx, esi
and esi, 1
not ecx
and ecx, 1
mov eax, esi
imul eax, dword [esp + 0x20]
or edi, 0x80
imul edx, ecx
add edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x30]
xor edx, 0x36a8a81a
imul edx, ecx
mov eax, esi
imul esi, dword [esp + 0x14]
imul eax, dword [esp + 0x30]
add edx, eax
mov eax, dword [esp + 0x14]
add eax, 0xba1c9d50
mov dword [esp + 0x30], edx
cdq
idiv ebx
xor eax, eax
imul edx, ecx
mov ecx, dword [esp + 0x40]
add edx, esi
xor esi, esi
cmp dword [esp + 0x60], esi
mov dword [esp + 0x14], edx
setne al
xor edx, edx
mov ebx, ecx
cmp eax, esi
sete dl
xor ebx, 0x777dd24f
xor ecx, 0x777dd242
imul ecx, eax
imul edx, ebx
add ecx, edx
jmp 0x100090a0
mov ecx, dword [esp + 0x24]
add ecx, 0xa554a2d3
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x50]
imul eax, eax, 0x7fffffff
sub ecx, eax
mov eax, edi
shr eax, 6
mov esi, eax
not esi
and esi, 1
mov ebx, edx
xor ebx, 0x5188c894
and eax, 1
imul esi, ebx
imul eax, edx
add esi, eax
mov dword [esp + 0x50], esi
or edi, 0x40
xor esi, esi
jmp 0x100090a0
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x74], 1
add ecx, 0xa9d1131e
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
sub ecx, eax
jmp 0x100090a0
mov ecx, dword [esp + 0x1c]
add ecx, 0x404e4823
jmp 0x100094b8
mov eax, dword [esp + 0x1a8]
mov ebx, dword [eax + 4]
mov esi, dword [eax]
push 0
push 2
push ebx
push esi
call fcn.10013550
and eax, 0xb6e23fb0
and edx, 0xe6b19908
mov ecx, 0x47513667
sub ecx, eax
mov eax, 0xe7bd8cea
sbb eax, edx
add esi, ecx
adc ebx, eax
mov ecx, esi
add ecx, 0x141fe971
mov edx, ebx
adc edx, 0x8b9b3f9a
and ecx, 0xffff0000
sub esi, ecx
sbb ebx, edx
mov eax, esi
add eax, 0x141fe971
push 0
mov ecx, ebx
adc ecx, 0x8b9b3f9a
push 2
or ecx, 0xea1380f
or eax, 0xb87ce363
push ecx
push eax
call fcn.10013550
sub esi, eax
sbb ebx, edx
add esi, 0xcc9cccd3
adc ebx, 0x9a3c77a9
mov edx, esi
mov eax, ebx
xor edx, 0xdf8317e4
xor eax, 0xfd5eeff6
xor esi, 0x980014a0
xor ebx, 0xc002806
or edx, 0x980315e0
or eax, 0x5d162ac6
push 0xc5f98cc7
and esi, 0x980315e0
and ebx, 0x5d162ac6
sub edx, esi
push 0xa6b02db9
sbb eax, ebx
push eax
push edx
call fcn.10013550
add eax, 0xe55de7d5
adc edx, 0xc5ae205a
mov ecx, ebp
xor ecx, 0xa55a5b5
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
xor esi, esi
jmp 0x100090a0
mov eax, dword [esp + 0x1a8]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push 0xa055d156
push 0x18e44c8d
push ecx
push edx
call fcn.10013550
push 0x39e1e7e0
add eax, 0x249474a6
push 0x543fa9bb
adc edx, 0xa019e556
push edx
push eax
call fcn.10013550
add eax, 0x19b334bd
push 0x4d31fabc
adc edx, 0xcd6e09de
push 0x19815bb7
or edx, 0x7fffffff
or eax, 0xffffffff
push edx
push eax
call fcn.10013550
mov ebx, eax
add ebx, 0x63cb085a
adc edx, 0x4d75c6e
mov dword [esp + 0x94], edx
mov esi, edi
shr esi, 3
mov ecx, esi
and esi, 1
mov eax, ebp
xor eax, 0xe335a33f
not ecx
and ecx, 1
imul eax, ecx
mov edx, esi
imul edx, ebp
add eax, edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1c]
add eax, 0x64b99784
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, esi
imul eax, dword [esp + 0x1c]
imul edx, ecx
add edx, eax
mov dword [esp + 0x1c], edx
mov edx, esi
imul edx, dword [esp + 0x34]
mov eax, ecx
imul eax, eax, 0x4fcefe95
sub edx, eax
mov dword [esp + 0x34], edx
mov edx, esi
imul edx, dword [esp + 0x24]
mov eax, ecx
imul eax, eax, 0x1e5ad2e7
sub edx, eax
mov dword [esp + 0x24], edx
mov edx, esi
imul edx, dword [esp + 0x20]
mov eax, ecx
imul eax, eax, 0x7dc2923a
add edx, eax
mov dword [esp + 0x20], edx
mov edx, esi
imul edx, dword [esp + 0x30]
mov eax, ecx
imul eax, eax, 0x17b6f2c5
sub edx, eax
mov dword [esp + 0x30], edx
mov edx, esi
imul edx, dword [esp + 0x28]
mov eax, ecx
imul eax, eax, 0x49998bf4
sub edx, eax
mov dword [esp + 0x28], edx
mov edx, esi
imul edx, dword [esp + 0x10]
mov eax, ecx
imul eax, eax, 0x41f2d4c9
sub edx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], edx
mov edx, eax
xor edx, 0x8f20b79c
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x58]
add edx, ebp
mov dword [esp + 0x4c], edx
mov edx, eax
xor edx, 0xe81ea7cf
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x40]
add edx, ebp
mov dword [esp + 0x58], edx
mov edx, eax
xor edx, 0xb3a0d800
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x44]
add edx, ebp
mov dword [esp + 0x40], edx
mov edx, eax
xor edx, 0x1265a1f9
mov ebp, esi
imul esi, dword [esp + 0x48]
imul edx, ecx
imul ebp, eax
imul ecx, ecx, 0xa22d24f
push 0x6b86f14f
add edx, ebp
mov ebp, dword [esp + 0x98]
push 0xb0597207
push ebp
add esi, ecx
push ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], esi
or edi, 8
call fcn.10013550
add eax, 0x1470b18b
adc edx, 0x456bb71
mov cl, 0x3f
call fcn.100136d0
push 0x94790eb0
push 0x4fa68df9
push ebp
push ebx
mov esi, eax
call fcn.10013550
add eax, 0xeb8f4e75
adc edx, 0xfba9448e
mov cl, 0x3f
call fcn.100136d0
mov ebp, dword [esp + 0x68]
or esi, eax
mov eax, dword [esp + 0x54]
not esi
and esi, 1
mov ecx, 0
sete cl
mov edx, eax
xor edx, 0xd8c6da7c
xor eax, 0xd8c6da7f
imul eax, esi
imul ecx, edx
add ecx, eax
xor esi, esi
jmp 0x100090a0
mov ecx, dword [esp + 0x2c]
add ecx, 0x6f010138
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
sub ecx, eax
mov ebx, edi
shr ebx, 2
mov edx, ebp
xor edx, 0xb7421a74
mov esi, ebx
and ebx, 1
not esi
and esi, 1
imul edx, esi
mov eax, ebx
imul eax, ebp
add edx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x68], edx
add eax, 0xe50decd0
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, ebx
imul eax, dword [esp + 0x1c]
mov ebp, ebx
or edi, 4
imul edx, esi
add edx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], edx
imul ebp, eax
mov edx, eax
mov eax, dword [esp + 0x4c]
xor edx, 0xb8d8e50f
imul edx, esi
add edx, ebp
mov dword [esp + 0x54], edx
mov edx, eax
xor edx, 0x9e139a41
imul edx, esi
mov ebp, ebx
imul ebp, eax
add edx, ebp
mov dword [esp + 0x4c], edx
mov eax, ebx
imul eax, dword [esp + 0x58]
mov edx, esi
imul edx, edx, 0x26806d45
mov ebp, dword [esp + 0x68]
add eax, edx
mov dword [esp + 0x58], eax
mov eax, ebx
imul ebx, dword [esp + 0x44]
imul eax, dword [esp + 0x40]
mov edx, esi
imul esi, esi, 0x58c1a5c
imul edx, edx, 0x6b55c129
add eax, edx
sub ebx, esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
xor esi, esi
jmp 0x100090a0
mov eax, dword [esp + 0x64]
mov edx, eax
xor edx, 0x602968cf
mov dword [esp + 0x60], esi
mov esi, edi
shr esi, 1
mov ecx, esi
and esi, 1
not ecx
and ecx, 1
imul edx, ecx
mov ebx, esi
imul ebx, eax
mov eax, dword [esp + 0x2c]
add edx, ebx
mov dword [esp + 0x64], edx
add eax, 0x4fe0cdec
cdq
mov ebx, 0x7fffffff
idiv ebx
mov eax, esi
imul eax, dword [esp + 0x2c]
mov ebx, esi
or edi, 2
mov dword [esp + 0x7c], 0x3eadba1c
mov dword [esp + 0x80], 0xffb49393
imul edx, ecx
add edx, eax
mov dword [esp + 0x2c], edx
mov eax, ecx
imul eax, eax, 0x265166fd
mov edx, esi
imul edx, ebp
add edx, eax
mov ebp, edx
mov eax, ecx
mov edx, esi
imul esi, dword [esp + 0x4c]
imul eax, eax, 0x11a25274
imul edx, dword [esp + 0x1c]
sub edx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], edx
imul ebx, eax
mov edx, eax
mov eax, dword [esp + 0x1a8]
xor edx, 0x83b8ce48
imul edx, ecx
imul ecx, ecx, 0x14e105df
add esi, ecx
mov ecx, dword [eax]
add edx, ebx
or ecx, dword [eax + 4]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], esi
jne 0x100099b6
lea eax, [ecx + 1]
jmp 0x100099b8
xor eax, eax
xor ecx, ecx
test eax, eax
mov eax, dword [esp + 0x70]
sete cl
xor edx, edx
mov esi, eax
test ecx, ecx
sete dl
xor esi, 0x5d806a90
xor eax, 0x5d806a9d
imul eax, ecx
imul edx, esi
add edx, eax
mov ecx, edx
xor esi, esi
jmp 0x100090a0
mov ecx, dword [esp + 0x3c]
xor ecx, 0x4ae751ca
jmp 0x100090a0
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1ac]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], esi
xor ecx, 0x63f635c7
jmp 0x100090a0
mov ecx, dword [esp + 0x38]
mov eax, 8
add dword [esp + 0x1a8], eax
add dword [esp + 0x1ac], eax
xor ecx, 0x9f55a02f
jmp 0x100090a0
mov edx, dword [esp + 0x28]
xor edx, 0x3144f55f
mov esi, edi
shr esi, 9
mov ecx, esi
and esi, 1
not ecx
and ecx, 1
imul edx, ecx
mov eax, esi
imul eax, dword [esp + 0x28]
add edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
add eax, 0x4bd9c319
cdq
mov ebx, 0x7fffffff
idiv ebx
mov eax, esi
imul eax, dword [esp + 0x10]
mov ebx, esi
or edi, 0x200
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], edx
imul ebx, eax
mov edx, eax
mov eax, dword [esp + 0x18]
xor edx, 0x640635b1
imul edx, ecx
add edx, ebx
mov dword [esp + 0x3c], edx
add eax, 0x5e5f4c42
cdq
mov ebx, 0x7fffffff
idiv ebx
mov eax, esi
imul eax, dword [esp + 0x18]
mov ebx, esi
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], edx
imul ebx, eax
mov edx, eax
mov eax, dword [esp + 0x48]
xor edx, 0x5e355c99
imul esi, eax
imul edx, ecx
add edx, ebx
mov dword [esp + 0x38], edx
mov edx, eax
xor edx, 0x5c9dc8c1
imul edx, ecx
mov eax, dword [esp + 0x44]
add edx, esi
xor ecx, ecx
cmp dword [esp + 0x60], ecx
mov dword [esp + 0x48], edx
sete cl
xor edx, edx
mov esi, eax
test ecx, ecx
sete dl
xor esi, 0x59159e24
xor eax, 0x59159e2f
imul eax, ecx
imul edx, esi
add edx, eax
mov ecx, edx
xor esi, esi
jmp 0x100090a0
mov eax, edi
shr eax, 8
mov esi, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x14]
add eax, 0x29f59811
cdq
mov ebx, 0x7fffffff
idiv ebx
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x30]
not esi
and esi, 1
and eax, 1
imul eax, dword [esp + 0x14]
xor ecx, 0x4a55aa05
or edi, 0x100
imul esi, edx
add esi, eax
mov dword [esp + 0x14], esi
xor esi, esi
jmp 0x100090a0
mov ecx, dword [esp + 0x18]
add ecx, 0xd4537ce7
jmp 0x100094b8
mov eax, dword [esp + 0x6c]
mov edx, eax
xor edx, 0xf54f07c3
mov ecx, edi
not ecx
and ecx, 1
imul edx, ecx
mov esi, edi
and esi, 1
mov ebx, esi
imul ebx, eax
mov eax, dword [esp + 0x64]
add edx, ebx
mov dword [esp + 0x6c], edx
mov edx, eax
xor edx, 0x427857ad
imul edx, ecx
mov ebx, esi
imul ebx, eax
mov eax, dword [esp + 0x2c]
add edx, ebx
add eax, 0x88e7d7a2
mov dword [esp + 0x64], edx
cdq
mov ebx, 0x7fffffff
idiv ebx
mov eax, esi
imul eax, dword [esp + 0x2c]
or edi, 1
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], edx
add eax, 0xeb9d002c
cdq
idiv ebx
mov eax, esi
imul eax, dword [esp + 0x5c]
mov ebx, esi
imul esi, dword [esp + 0x54]
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x5c], edx
imul ebx, eax
mov edx, eax
xor edx, 0xcc391af4
imul edx, ecx
imul ecx, ecx, 0x642a74cf
sub esi, ecx
mov ecx, dword [esp + 0x78]
add edx, ebx
mov dword [esp + 0x54], esi
xor ecx, 0x531d4c06
mov dword [esp + 0x70], edx
xor esi, esi
jmp 0x100090a0
mov eax, dword [esp + 0x3c]
mov edx, eax
xor edx, 0x50fb082e
mov esi, edi
shr esi, 0xa
mov ecx, esi
and esi, 1
not ecx
and ecx, 1
imul edx, ecx
mov ebx, esi
imul ebx, eax
mov eax, dword [esp + 0x18]
add edx, ebx
add eax, 0x623a3e9b
mov dword [esp + 0x3c], edx
cdq
mov ebx, 0x7fffffff
idiv ebx
mov eax, esi
imul eax, dword [esp + 0x18]
or edi, 0x400
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], edx
imul esi, eax
mov edx, eax
mov eax, dword [esp + 0x1b0]
xor edx, 0x1bd4a1cd
imul edx, ecx
add edx, esi
xor ecx, ecx
xor esi, esi
cmp dword [eax + 4], esi
mov eax, dword [esp + 0x48]
sete cl
mov dword [esp + 0x38], edx
xor edx, edx
mov ebx, eax
cmp ecx, esi
sete dl
xor ebx, 0xa2157747
xor eax, 0xa215775d
imul eax, ecx
imul edx, ebx
add edx, eax
mov ecx, edx
jmp 0x100090a0
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x1a4]
imul eax, eax, 0x60883777
mov ecx, 0xd49d8703
sub ecx, eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x34]
xor eax, 0x416c344d
mov esi, edi
shr esi, 5
mov ecx, esi
and esi, 1
not ecx
and ecx, 1
imul eax, ecx
mov edx, esi
imul edx, dword [esp + 0x34]
add eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
add eax, 0x203d8f68
cdq
mov ebx, 0x7fffffff
idiv ebx
mov eax, esi
imul eax, dword [esp + 0x24]
or edi, 0x20
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x24], edx
imul esi, eax
mov edx, eax
xor edx, 0x3632c7de
imul edx, ecx
mov ecx, dword [esp + 0x58]
add edx, esi
xor eax, eax
xor esi, esi
cmp dword [esp + 0x60], esi
mov dword [esp + 0x50], edx
setne al
xor edx, edx
mov ebx, ecx
cmp eax, esi
sete dl
xor ebx, 0xebc6f26f
xor ecx, 0xebc6f266
imul ecx, eax
imul edx, ebx
add ecx, edx
jmp 0x100090a0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x74], esi
add ecx, 0xc4f293b4
jmp 0x100094b8
mov ecx, dword [esp + 0x10]
add ecx, 0x26bebb07
jmp 0x100094b8
mov ecx, dword [esp + 0x14]
add ecx, 0xc679d1b6
jmp 0x100094b8
mov ecx, dword [esp + 0x34]
xor ecx, 0x5dfb51e0
jmp 0x10009099
mov eax, dword [esp + 0x74]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18c
ret