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

Disassembly:
mov edx, dword [esp + 4]
sub esp, 0x130
cmp edx, 1
jle 0x10038a7c
push ebx
mov eax, dword [esp + 0x140]
push ebp
push esi
push edi
mov edi, dword [esp + 0x148]
movzx ecx, byte [edi + 0xd]
shl edx, 0xc
add ecx, edx
movzx esi, byte [ecx + eax - 0xf00]
mov ecx, dword [esp + 0x150]
mov esi, dword [ecx + esi*4 + 0x400]
lea ebx, [esi + esi]
and ebx, 0xed5990ee
sub esi, ebx
sub esi, 0x9533789
mov ebp, esi
movzx esi, byte [edi]
add esi, edx
movzx esi, byte [esi + eax - 0x1000]
mov esi, dword [ecx + esi*4]
imul esi, esi, 0xee4f21a7
mov ebx, esi
imul esi, esi, 0x19b77617
imul ebx, ebx, 0x59b77617
mov dword [esp + 0x20], ebx
or ebx, 0xffffffff
sub ebx, ebp
or ebx, dword [esp + 0x20]
mov dword [esp + 0x14], ebp
add ebx, ebx
mov ebp, ebx
sub ebp, esi
mov esi, dword [esp + 0x14]
add ebp, esi
lea ebp, [ebp + ebp + 3]
and ebp, 0x4ccae8a2
sub ebp, ebx
sub ebp, esi
mov esi, dword [esp + 0x20]
lea ebp, [esi + ebp - 0x26657453]
movzx esi, byte [edi + 0xa]
add esi, edx
movzx esi, byte [esi + eax - 0xe00]
mov esi, dword [ecx + esi*4 + 0x800]
lea ebx, [esi + esi]
and ebx, 0x59c6af8
sub esi, ebx
add esi, 0x2ce357c
or ebx, 0xffffffff
sub ebx, ebp
or ebx, esi
sub esi, ebp
mov ebp, esi
lea esi, [ebx + ebx]
sub esi, ebp
lea esi, [esi + esi + 3]
and esi, 0xa40f12b4
mov dword [esp + 0x18], esi
add ebx, ebx
mov esi, ebx
mov ebx, dword [esp + 0x18]
sub esi, ebx
movzx ebx, byte [edi + 7]
sub esi, ebp
imul esi, esi, 0x772c5451
add ebx, edx
movzx ebx, byte [ebx + eax - 0xd00]
mov ebx, dword [ecx + ebx*4 + 0xc00]
add esi, 0x4d44a61c
imul ebx, ebx, 0x9f119d67
imul esi, esi, 0x219574b1
imul ebx, ebx, 0x238d2e57
mov dword [esp + 0x18], esi
lea ebp, [esi - 1]
mov esi, dword [esp + 0x144]
add esi, 0xfffffffe
shl esi, 4
mov dword [esp + 0x24], esi
lea esi, [esp + esi + 0x70]
mov dword [esp + 0x2c], esi
mov esi, 0x2e55ffff
sub esi, ebx
xor esi, 0x238d
sub esi, 0x2e560000
xor esi, ebp
xor esi, 0xffffdc72
or esi, ebp
add esi, esi
sub ebx, esi
mov esi, dword [esp + 0x18]
lea esi, [ebx + esi - 2]
mov ebx, dword [esp + 0x2c]
mov dword [ebx], esi
movzx esi, byte [edi + 1]
add esi, edx
movzx esi, byte [esi + eax - 0xb00]
mov esi, dword [ecx + esi*4 + 0x400]
lea ebx, [esi + esi]
and ebx, 0xed5990ee
sub esi, ebx
sub esi, 0x9533789
mov ebx, esi
movzx esi, byte [edi + 4]
add esi, edx
movzx esi, byte [esi + eax - 0xc00]
mov esi, dword [ecx + esi*4]
imul esi, esi, 0xcf8d4161
mov dword [esp + 0x10], esi
lea esi, [ebx + ebx]
and esi, 0xed5990ee
mov ebp, esi
sub ebp, ebx
mov dword [esp + 0x14], ebx
lea ebx, [ebp + ebp + 0x12a66f11]
mov ebp, dword [esp + 0x10]
imul ebp, ebp, 0xf0b64542
and ebx, ebp
sub esi, ebx
sub esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
imul esi, esi, 0x60ee6299
imul ebx, ebx, 0x63675439
lea esi, [esi + ebx + 0x6f5ca2e1]
mov dword [esp + 0x10], esi
movzx esi, byte [edi + 0xe]
add esi, edx
movzx esi, byte [esi + eax - 0xa00]
mov ebx, dword [ecx + esi*4 + 0x800]
imul ebx, ebx, 0xee4f21a7
mov ebp, ebx
imul ebx, ebx, 0x433c61bf
imul ebp, ebp, 0x59b77617
or esi, 0xffffffff
sub esi, ebp
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x10]
imul esi, esi, 0x238d2e57
mov ebp, 0x2e55ffff
sub ebp, esi
mov esi, dword [esp + 0x18]
xor ebp, 0x238d
sub ebp, 0x2e560000
xor ebp, esi
xor ebp, 0xffffdc72
or ebp, esi
mov esi, dword [esp + 0x10]
imul ebp, ebp, 0x3e233ace
sub ebx, ebp
lea esi, [esi + ebx - 0x3e233ace]
mov dword [esp + 0x10], esi
movzx esi, byte [edi + 0xb]
add esi, edx
movzx esi, byte [esi + eax - 0x900]
mov esi, dword [ecx + esi*4 + 0xc00]
imul esi, esi, 0xee4f21a7
mov ebp, esi
imul ebp, ebp, 0x59b77617
or ebx, 0xffffffff
sub ebx, ebp
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x10]
imul esi, esi, 0xa64889e9
imul ebx, ebx, 0x238d2e57
mov dword [esp + 0x1c], ebx
mov ebp, 0x2e55ffff
sub ebp, ebx
mov ebx, dword [esp + 0x18]
xor ebp, 0x238d
sub ebp, 0x2e560000
xor ebp, ebx
xor ebp, 0xffffdc72
or ebp, ebx
mov ebx, dword [esp + 0x1c]
add ebp, ebp
sub esi, ebp
lea esi, [esi + ebx - 2]
mov ebx, dword [esp + 0x24]
mov dword [esp + ebx + 0x74], esi
movzx esi, byte [edi + 5]
add esi, edx
movzx esi, byte [esi + eax - 0x700]
mov esi, dword [ecx + esi*4 + 0x400]
lea ebx, [esi + esi]
and ebx, 0x31193208
sub esi, ebx
add esi, 0x188c9904
mov ebp, esi
movzx esi, byte [edi + 8]
add esi, edx
movzx esi, byte [esi + eax - 0x800]
mov esi, dword [ecx + esi*4]
imul esi, esi, 0xee4f21a7
mov ebx, esi
imul esi, esi, 0x264889e9
imul ebx, ebx, 0x59b77617
mov dword [esp + 0x18], ebx
or ebx, 0xffffffff
sub ebx, ebp
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
or ebx, ebp
add ebx, ebx
add esi, ebx
add esi, dword [esp + 0x14]
lea esi, [esi + esi + 3]
and esi, 0xdc40a2e6
sub esi, ebx
sub esi, dword [esp + 0x14]
lea ebx, [esi + ebp + 0x11dfae8b]
movzx esi, byte [edi + 2]
add esi, edx
movzx esi, byte [esi + eax - 0x600]
mov esi, dword [ecx + esi*4 + 0x800]
imul esi, esi, 0x8fa77b87
mov dword [esp + 0x10], esi
lea esi, [ebx + ebx]
and esi, 0xed5990ee
mov ebp, esi
sub ebp, ebx
mov dword [esp + 0x14], ebx
lea ebx, [ebp + ebp + 0x12a66f11]
mov ebp, dword [esp + 0x10]
imul ebp, ebp, 0x5ae2b46e
and ebx, ebp
sub esi, ebx
sub esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
imul esi, esi, 0x60ee6299
imul ebx, ebx, 0xc69f8df
lea esi, [esi + ebx + 0x6f5ca2e1]
mov dword [esp + 0x10], esi
movzx esi, byte [edi + 0xf]
add esi, edx
movzx esi, byte [esi + eax - 0x500]
mov ebp, dword [ecx + esi*4 + 0xc00]
imul ebp, ebp, 0xee4f21a7
mov ebx, ebp
imul ebx, ebx, 0x59b77617
or esi, 0xffffffff
sub esi, ebx
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x10]
imul ebp, ebp, 0xf36eec2e
imul esi, esi, 0x238d2e57
mov ebx, 0xdc72d1a9
sub ebx, esi
mov dword [esp + 0x18], ebx
add ebx, 0x51e32e56
mov esi, dword [esp + 0x20]
xor ebx, 0x238d
sub ebx, 0x2e560000
xor ebx, esi
xor ebx, 0xffffdc72
or ebx, esi
mov esi, dword [esp + 0x10]
imul esi, esi, 0x71a5cae
sub ebp, esi
lea esi, [ebp + ebx*4 + 3]
add ebx, ebx
and esi, 0x1209c35c
sub esi, ebx
sub esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
lea esi, [esi + ebx - 0x2c921006]
lea ebx, [esi + esi]
and ebx, 0x1209c35c
sub esi, ebx
mov ebx, dword [esp + 0x24]
add esi, 0x904e1ae
mov dword [esp + ebx + 0x78], esi
movzx esi, byte [edi + 9]
add esi, edx
movzx esi, byte [esi + eax - 0x300]
mov ebx, dword [ecx + esi*4 + 0x400]
movzx esi, byte [edi + 0xc]
imul ebx, ebx, 0xb3fc09fd
add esi, edx
movzx esi, byte [esi + eax - 0x400]
mov ebp, dword [ecx + esi*4]
mov esi, ebx
imul ebp, ebp, 0xee4f21a7
imul ebx, ebx, 0x10c0e4ab
mov dword [esp + 0x10], ebp
imul esi, esi, 0x2181c956
imul ebp, ebp, 0xb36eec2e
sub esi, 1
and esi, ebp
sub esi, ebx
mov ebx, dword [esp + 0x10]
imul ebx, ebx, 0x59b77617
sub esi, ebx
movzx ebx, byte [edi + 6]
add ebx, edx
movzx ebx, byte [ebx + eax - 0x200]
mov ebx, dword [ecx + ebx*4 + 0x800]
imul ebx, ebx, 0xb5e92fd3
mov dword [esp + 0x10], ebx
imul ebx, ebx, 0x640bffa5
add ebx, 0x59ffff
xor ebx, 0x9bf4
or ebp, 0xffffffff
xor esi, 0x19a166ac
sub ebp, esi
sub ebx, 0x5a0000
xor ebx, ebp
xor ebx, 0xffff640b
or ebx, ebp
mov ebp, dword [esp + 0x10]
imul ebp, ebp, 0x40bffa5
add ebx, ebx
add ebp, ebx
add ebp, esi
lea ebp, [ebp + ebp + 3]
and ebp, 0x3342cd58
sub ebx, ebp
add ebx, esi
mov esi, dword [esp + 0x10]
imul ebx, ebx, 0x11b0de59
imul esi, esi, 0x19b309a3
sub ebx, esi
movzx esi, byte [edi + 3]
add ebx, 0x5c7967e
add esi, edx
movzx edx, byte [esi + eax - 0x100]
mov esi, dword [ecx + edx*4 + 0xc00]
imul esi, esi, 0xdc5fc205
mov ebp, ebx
imul esi, esi, 0x1012bacd
imul ebx, ebx, 0xa64889e9
imul ebp, ebp, 0x59b77617
or edx, 0xffffffff
sub edx, ebp
mov ebp, 0xbacbffff
sub ebp, esi
xor ebp, 0x1012
add ebp, 0x45340000
xor ebp, edx
xor ebp, 0xffffefed
or ebp, edx
add ebp, ebp
sub ebx, ebp
lea edx, [ebx + esi - 2]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov dword [esp + esi + 0x7c], edx
mov edx, dword [esp + 0x144]
lea esi, [edx - 2]
mov dword [esp + esi*4 + 0x3c], ebx
lea esi, [edx + edx]
and esi, 0x7f3799ee
sub edx, esi
sub edx, 0x40643309
mov esi, edx
lea edx, [esi + esi]
and edx, 0x7f3799ee
sub edx, esi
imul edx, edx, 0x47edf783
sub edx, 0x59393be2
mov ebp, edx
imul ebp, ebp, 0xfee24f2b
mov dword [esp + 0x30], ebp
mov ebp, edx
imul ebp, ebp, 0x11db0d50
lea ebp, [esp + ebp + 0x5c]
mov dword [esp + 0x20], ebp
mov ebp, edx
mov esi, edx
imul ebp, ebp, 0x476c354
mov ebx, edx
imul edx, edx, 0x23b61aa
imul esi, esi, 0x24f2b000
imul ebx, ebx, 0x11db0d5
lea ebp, [esp + ebp + 0x38]
sub edx, 2
mov dword [esp + 0x24], ebp
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x30]
mov ebp, 0xfffffffe
sub ebp, edx
add edx, 0xffffffff
or edx, 0xfffffffe
add edx, 2
mov dword [esp + 0x18], ebp
lea ebp, [ebp + edx*2 + 1]
or ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
not edx
lea edx, [edx + ebp + 1]
not edx
test edx, edx
mov dword [esp + 0x2c], ebx
jns 0x10038a3e
lea edi, [ebx - 1]
lea edx, [edi - 1]
xor edx, 0xf6acc877
lea ebp, [edx + edx]
and ebp, 0xed5990ee
sub edx, ebp
sub edx, 0x9533789
mov dword [esp + 0x18], edi
xor edi, 0x12f9222a
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x38]
or edx, 0x40d7dbe2
sub edx, ebx
sub edx, 0x206bedf0
lea ebx, [edx + edx]
and ebx, 0x40d7dbe2
sub edx, ebx
lea ebx, [edi + edi]
and ebx, 0x25f24454
sub edi, ebx
mov edi, dword [esp + edi*4 + 0x4be488e4]
movzx edi, byte [edi + 0xd]
add edi, eax
add edx, 0x206bedf1
shl edx, 0xc
movzx edx, byte [edx + edi + 0x100]
mov edi, dword [ecx + edx*4 + 0x400]
mov edx, dword [esp + 0x24]
imul edi, edi, 0x9f119d67
mov edx, dword [edx]
movzx ebx, byte [edx]
sub ebx, esi
movzx ebx, byte [ebx + eax - 0x1000]
mov ebx, dword [ecx + ebx*4]
imul ebx, ebx, 0x9f119d67
mov dword [esp + 0x10], ebx
imul ebx, ebx, 0x471a5cae
mov dword [esp + 0x14], edi
imul edi, edi, 0x471a5cae
or ebp, 0xffffffff
sub ebp, ebx
or ebx, 0xffffffff
sub ebx, edi
mov edi, dword [esp + 0x10]
or ebp, ebx
mov ebx, dword [esp + 0x14]
imul ebp, ebp, 0x59fe802b
add ebx, edi
imul ebx, ebx, 0x36cbb763
sub ebx, ebp
sub ebx, 0x59fe802b
imul ebx, ebx, 0x27d1c17d
mov edi, 0xc17bffff
sub edi, ebx
movzx ebx, byte [edx + 0xa]
sub ebx, esi
movzx ebx, byte [ebx + eax - 0xe00]
xor edi, 0xc176
add edi, 0x3e840000
mov ebp, 0xc17bffff
sub ebp, dword [ecx + ebx*4 + 0x800]
mov ebx, dword [esp + 0x30]
xor ebp, 0xc176
add ebp, 0x3e840000
xor edi, ebp
xor edi, 0xed66523b
mov dword [esp + 0x14], edi
mov edi, ebx
or edi, 0x9cdf29d7
and ebx, 0x9cdf29d7
sub edi, ebx
lea ebx, [edi + edi]
and ebx, 0xc641ac50
sub edi, ebx
mov edi, dword [esp + edi*4 - 0x737ca724]
movzx edi, byte [edi + 7]
sub edi, esi
movzx edi, byte [edi + eax - 0xd00]
mov ebx, dword [ecx + edi*4 + 0xc00]
imul ebx, ebx, 0xee4f21a7
mov edi, ebx
imul edi, edi, 0x59b77617
or ebp, 0xffffffff
sub ebp, dword [esp + 0x14]
or edi, ebp
mov ebp, ebx
imul ebx, ebx, 0x1b622cc9
add edi, edi
imul ebp, ebp, 0x264889e9
add ebp, edi
add ebp, dword [esp + 0x14]
lea ebp, [ebp + ebp + 3]
and ebp, 0xdacca476
sub edi, ebp
add edi, dword [esp + 0x14]
imul edi, edi, 0x34d8201f
sub edi, ebx
add edi, 0x51239563
mov ebx, dword [esp + 0x1c]
imul edi, edi, 0x9270a421
shl ebx, 4
mov dword [esp + ebx + 0x70], edi
movzx edi, byte [edx + 4]
movzx ebx, byte [edx + 1]
sub edi, esi
movzx edi, byte [edi + eax - 0xc00]
mov edi, dword [ecx + edi*4]
imul edi, edi, 0xee4f21a7
sub ebx, esi
movzx ebx, byte [ebx + eax - 0xb00]
mov ebx, dword [ecx + ebx*4 + 0x400]
mov ebp, edi
imul ebx, ebx, 0x9f119d67
imul edi, edi, 0x433c61bf
imul ebp, ebp, 0x59b77617
mov dword [esp + 0x10], ebx
or ebx, 0xffffffff
sub ebx, ebp
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x10]
imul ebx, ebx, 0x238d2e57
mov ebp, 0x2e55ffff
sub ebp, ebx
mov ebx, dword [esp + 0x1c]
xor ebp, 0x238d
sub ebp, 0x2e560000
xor ebp, ebx
xor ebp, 0xffffdc72
or ebp, ebx
mov ebx, dword [esp + 0x10]
imul ebp, ebp, 0x3e233ace
sub edi, ebp
lea ebp, [edi + ebx - 0x3e233ace]
movzx edi, byte [edx + 0xe]
sub edi, esi
movzx edi, byte [edi + eax - 0xa00]
mov edi, dword [ecx + edi*4 + 0x800]
imul edi, edi, 0x27326bfb
imul edi, edi, 0x607fe733
mov dword [esp + 0x10], ebp
imul ebp, ebp, 0x238d2e57
or ebx, 0xffffffff
sub ebx, edi
mov edi, 0x2e55ffff
sub edi, ebp
xor edi, 0x238d
sub edi, 0x2e560000
xor edi, ebx
xor edi, 0xffffdc72
or edi, ebx
add ebx, 0xffffffff
add edi, edi
sub edi, ebx
mov ebx, dword [esp + 0x10]
imul edi, edi, 0x11b0de59
imul ebx, ebx, 0x6d148e3f
sub edi, ebx
mov ebx, dword [esp + 0x18]
xor ebx, 0xf6acc877
lea ebp, [ebx + ebx]
and ebp, 0xed5990ee
sub ebx, ebp
shl ebx, 0xc
movzx ebp, byte [edx + 0xb]
add ebx, eax
movzx ebx, byte [ebx + ebp - 0x33788900]
mov ebx, dword [ecx + ebx*4 + 0xc00]
lea ebp, [ebx + ebx]
and ebp, 0xf504be64
sub ebx, ebp
sub ebx, 0x57da0ce
mov dword [esp + 0x14], ebx
mov ebp, edi
imul ebp, ebp, 0x59b77617
mov dword [esp + 0x1c], ebp
or ebp, 0xffffffff
sub ebp, ebx
mov ebx, dword [esp + 0x1c]
or ebx, ebp
add ebx, ebx
mov dword [esp + 0x1c], ebx
mov ebp, edi
imul ebp, ebp, 0x264889e9
add ebp, ebx
add ebp, dword [esp + 0x14]
lea ebp, [ebp + ebp + 3]
and ebp, 0xf504be64
sub ebx, ebp
add ebx, dword [esp + 0x14]
imul ebx, ebx, 0x11b0de59
lea edi, [ebx + edi + 0xda23114]
mov ebx, dword [esp + 0x20]
imul edi, edi, 0x59b77617
mov dword [ebx - 8], edi
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx]
movzx ebx, byte [ebx + 8]
movzx ebp, byte [edx + 5]
sub ebx, esi
movzx ebx, byte [ebx + eax - 0x800]
mov ebx, dword [ecx + ebx*4]
imul ebx, ebx, 0xee4f21a7
sub ebp, esi
movzx ebp, byte [eax + ebp - 0x700]
mov ebp, dword [ecx + ebp*4 + 0x400]
mov dword [esp + 0x14], ebx
imul ebx, ebx, 0x59b77617
imul ebp, ebp, 0xac35d353
mov dword [esp + 0x10], ebp
or ebp, 0xffffffff
sub ebp, ebx
mov ebx, dword [esp + 0x10]
add ebx, 1
imul ebx, ebx, 0x75541725
mov dword [esp + 0x34], ebx
add ebx, 0x7385e8da
xor ebx, 0x8aab
mov edi, dword [esp + 0x38]
add ebx, 0x17260000
xor ebx, ebp
xor ebx, 0xffff7554
or ebx, ebp
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x28], ebp
imul ebx, ebx, 0xeaa82e4a
mov ebp, dword [esp + 0x14]
imul ebp, ebp, 0x4c9113d2
sub ebx, ebp
mov ebp, dword [esp + 0x1c]
add edi, 0xfffffffe
lea ebx, [ebx + ebp*4 + 3]
or edi, 0xd6b321ba
sub edi, dword [esp + 0x2c]
and ebx, 0xddb82f14
add ebp, ebp
sub ebx, ebp
mov ebp, dword [esp + 0x28]
add edi, 0x14a66f25
sub ebx, dword [esp + 0x34]
lea ebx, [ebx + ebp - 0x79880066]
mov dword [esp + 0x14], ebx
movzx ebx, byte [edx + 2]
sub ebx, esi
movzx ebx, byte [ebx + eax - 0x600]
mov ebx, dword [ecx + ebx*4 + 0x800]
mov dword [esp + 0x10], ebx
add ebx, ebx
and ebx, 0x4a584a80
mov ebp, 0x252c2540
sub ebp, ebx
mov ebx, dword [esp + 0x10]
add ebx, ebp
mov dword [esp + 0x10], ebx
or ebp, 0xffffffff
sub ebp, ebx
mov ebx, dword [esp + 0x14]
or ebp, ebx
sub ebx, dword [esp + 0x10]
mov dword [esp + 0x28], ebp
movzx ebp, byte [edx + 0xf]
sub ebp, esi
movzx ebp, byte [eax + ebp - 0x500]
mov ebp, dword [ecx + ebp*4 + 0xc00]
imul ebp, ebp, 0xee4f21a7
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x34], ebx
add ebp, ebp
mov dword [esp + 0x28], ebp
sub ebp, ebx
mov ebx, dword [esp + 0x28]
lea ebp, [ebp + ebp + 3]
and ebp, 0x97e06594
sub ebx, ebp
sub ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x14]
imul ebx, ebx, 0x53251e3f
imul ebp, ebp, 0x59b77617
sub ebx, 0x2e7397cc
mov dword [esp + 0x10], ebx
or ebx, 0xffffffff
sub ebx, ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
imul ebp, ebp, 0x46dc2e41
mov ebx, 0xb923d1bf
sub ebx, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x34], ebx
add ebx, 0x751c2e40
xor ebx, 0x46dc
sub ebx, 0x2e400000
xor ebx, ebp
xor ebx, 0xffffb923
or ebx, ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x28], ebx
imul ebp, ebp, 0x4c9113d2
mov ebx, dword [esp + 0x10]
imul ebx, ebx, 0x7247a37e
sub ebx, ebp
mov ebp, dword [esp + 0x28]
lea ebx, [ebx + ebp*4 + 3]
and ebx, 0xed5990ee
add ebp, ebp
sub ebx, ebp
sub ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
lea ebx, [ebx + ebp - 0x3d88f6b9]
lea ebp, [ebx + ebx]
and ebp, 0xed5990ee
sub ebx, ebp
lea ebp, [edi + edi]
and ebp, 0xd6b321ba
sub edi, ebp
sub edi, 0x4a66f23
sub ebx, 0x9533789
shl edi, 4
mov dword [esp + edi + 0x78], ebx
mov ebx, dword [esp + 0x30]
mov edi, ebx
or edi, 0x7c05d0d9
and ebx, 0x7c05d0d9
sub edi, ebx
lea ebx, [edi + edi]
and ebx, 0x7f45e4c
sub edi, ebx
sub edi, 0x7c05d0da
mov ebx, edi
mov edi, dword [esp + 0x38]
or edi, 0xed5990ee
sub edi, dword [esp + 0x2c]
shl ebx, 0xc
add edi, 0x953378a
lea ebp, [edi + edi]
and ebp, 0xed5990ee
sub edi, ebp
movzx ebp, byte [edx + 9]
shl edi, 0xc
add edi, eax
movzx edi, byte [edi + ebp - 0x33788300]
mov edi, dword [ecx + edi*4 + 0x400]
movzx ebp, byte [edx + 0xc]
imul edi, edi, 0xad1ef84d
add ebp, eax
movzx ebx, byte [ebx + ebp + 0xc00]
mov ebx, dword [ecx + ebx*4]
mov dword [esp + 0x14], edi
imul ebx, ebx, 0xd87f36e9
imul edi, edi, 0x7e1a010a
mov dword [esp + 0x10], ebx
imul ebx, ebx, 0x396e02b2
or ebp, 0xffffffff
sub ebp, edi
or edi, 0xffffffff
sub edi, ebx
mov ebx, dword [esp + 0x14]
or ebp, edi
imul ebx, ebx, 0x7b61c683
mov edi, dword [esp + 0x10]
imul ebp, ebp, 0x60ee6299
imul edi, edi, 0xa75e1fcf
sub edi, ebp
lea ebx, [edi + ebx - 0x60ee6299]
movzx edi, byte [edx + 6]
sub edi, esi
movzx edi, byte [edi + eax - 0x200]
mov edi, dword [ecx + edi*4 + 0x800]
imul edi, edi, 0x9f119d67
movzx edx, byte [edx + 3]
mov dword [esp + 0x10], ebx
imul ebx, ebx, 0x471a5cae
mov dword [esp + 0x14], edi
imul edi, edi, 0x471a5cae
or ebp, 0xffffffff
sub ebp, ebx
or ebx, 0xffffffff
sub ebx, edi
mov edi, dword [esp + 0x10]
or ebp, ebx
mov ebx, dword [esp + 0x14]
imul ebp, ebp, 0x60ee6299
sub edi, ebp
lea edi, [ebx + edi - 0x60ee6299]
sub edx, esi
movzx edx, byte [edx + eax - 0x100]
mov edx, dword [ecx + edx*4 + 0xc00]
mov dword [esp + 0x14], edi
imul edi, edi, 0x471a5cae
imul edx, edx, 0xa9964617
or ebx, 0xffffffff
sub ebx, edi
mov edi, edx
imul edx, edx, 0x67264531
imul edi, edi, 0x7adaa34e
or ebp, 0xffffffff
sub ebp, edi
mov edi, dword [esp + 0x14]
or ebx, ebp
imul ebx, ebx, 0x60ee6299
sub edx, ebx
lea edi, [edx + edi - 0x60ee6299]
imul edi, edi, 0x238d2e57
mov edx, dword [esp + 0x20]
add dword [esp + 0x30], 1
sub dword [esp + 0x38], 2
mov dword [edx], edi
mov edi, dword [esp + 0x24]
lea ebx, [edx - 0xc]
mov dword [edi - 4], ebx
mov ebx, dword [esp + 0x18]
sub edx, 0x10
add esi, 0x1000
add edi, 0xfffffffc
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x148]
mov dword [esp + 0x20], edx
jmp 0x10038305
mov edx, dword [esp + 0x3c]
mov ecx, 0xfffffff0
sub edx, edi
lea esp, [esp]
mov eax, 0xffffffef
sub eax, ecx
xor eax, 0xffffffef
not eax
mov esi, ecx
or esi, eax
or eax, 0xffffffef
sub eax, esi
add eax, ecx
test eax, eax
jns 0x10038a78
mov al, byte [edx + edi]
mov byte [edi], al
add ecx, 1
add edi, 1
jmp 0x10038a50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret