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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x124
mov ebp, ecx
mov eax, dword [0x10066040]
xor eax, esp
mov dword [esp + 0x120], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x11c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
lea eax, [esp + 0x119]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
lea eax, [ecx + 0x14]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x50]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x4c]
mov dword [eax], 0xf
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf0], edx
lea eax, [edx + 0x14]
mov dword [esp + 0xf8], eax
cmp dword [esp + 0xb0], 0
sete byte [esp + 0x22]
lea eax, [ecx + 0x10]
mov dword [esp + 0x90], eax
mov eax, 0xebeb4276
mov ecx, 0x5ec4baf5
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x68], ebp
jmp 0x1004f720
mov eax, dword [esp + 0xac]
mov dword [esp + 0x110], eax
movzx eax, byte [esp + 0x12]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0xe4]
mov eax, dword [esp + 0xe8]
mov eax, dword [eax]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0xec]
mov eax, 0x54378ce
mov ecx, 0xabc97a1
cmovb eax, ecx
mov ecx, 0x30447e7a
nop
cmp ecx, 0xd30b732
jle 0x1004f790
cmp ecx, 0x425d2ec0
jg 0x1004f800
cmp ecx, 0x1d1643c6
jle 0x1004f8d3
cmp ecx, 0x30447e79
jg 0x1004fca9
cmp ecx, 0x2911434b
jle 0x10050697
cmp ecx, 0x2c5d4c7b
jg 0x10050e39
cmp ecx, 0x2911434c
je 0x10051611
cmp ecx, 0x2944006b
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xab5f2bb8
mov ecx, 0x1c15d86f
mov edx, 0x6242c4c7
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0xcba7da23
jle 0x1004f870
cmp ecx, 0xf6622a5b
jle 0x1004f92a
cmp ecx, 0xfdf0a82c
jg 0x1004fda3
cmp ecx, 0xf8b69d86
jle 0x100506d6
cmp ecx, 0xfbc50848
jg 0x10050e5b
cmp ecx, 0xf8b69d87
je 0x10051640
cmp ecx, 0xf9d993ce
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xae33fc22
mov ecx, 0x1c15d86f
mov edx, 0x211cd6e5
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0x527f1c3b
jle 0x1004fb11
cmp ecx, 0x6242c4c6
jg 0x1004ff10
cmp ecx, 0x5d8259a7
jle 0x10050715
cmp ecx, 0x5ec4baf4
jg 0x10050f17
cmp ecx, 0x5d8259a8
je 0x1005165b
cmp ecx, 0x5dfd7805
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xc7d9b833
mov ecx, 0x8126b2ff
mov edx, 0x4c0cfb21
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0xabece1c0
jg 0x1004fc52
cmp ecx, 0x92fc866d
jg 0x1004ff5b
cmp ecx, 0x87f5f047
jle 0x10050754
cmp ecx, 0x90b28bbc
jg 0x10050f4a
cmp ecx, 0x87f5f048
je 0x10051676
cmp ecx, 0x8faea594
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xcb124360
mov ecx, 0x1c15d86f
mov edx, 0xf1800887
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0x14b94fa6
jle 0x10050436
cmp ecx, 0x198b0525
jle 0x10050793
cmp ecx, 0x1b8f566d
jg 0x10050f7d
cmp ecx, 0x198b0526
je 0x10051691
cmp ecx, 0x1b61c533
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x9bcacafd
mov ecx, 0xd844dc18
mov edx, 0xc6381a88
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0xdee69343
jle 0x100504a5
cmp ecx, 0xe7dff327
jle 0x100507d2
cmp ecx, 0xf209e8a9
jg 0x10050f9f
cmp ecx, 0xe7dff328
je 0x100516ac
cmp ecx, 0xf1800887
jne 0x1004f720
mov edi, dword [esp + 0x7c]
lea eax, [edi + edi]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xc739517e
lea edx, [edx + edi*2]
lea esi, [edi*4]
or esi, 0x8e72a2fe
add esi, edx
and ecx, 0x38c6ae80
lea edx, [esi + ecx*2]
or eax, 0x38c6ae80
sub edx, eax
mov ecx, edx
and ecx, 0xc739517e
mov esi, ecx
xor esi, 0xc739517e
add esi, edx
lea ebx, [esi + ecx]
mov edx, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov eax, edi
xor eax, 0xfffffffe
add eax, 1
add ecx, esi
add ecx, 0x51f60d2e
and ecx, eax
lea esi, [ecx + ebx]
add esi, 0x51f60d2e
mov ebp, 0xae09f2d1
sub ebp, ebx
mov ecx, edi
and ebp, eax
add ebp, esi
mov eax, ebp
and eax, 0x1f974fd5
lea eax, [eax + eax*2]
mov esi, ebp
sub esi, eax
mov eax, ebp
add eax, ebp
xor eax, 0xc0d16054
add eax, esi
mov ebx, ebp
or ebx, 0x1f974fd5
add ebx, eax
mov edx, dword [esp + 0x18]
not edx
lea eax, [edx + edx]
lea esi, [eax + edi*2]
add esi, 2
add ebx, ebp
mov dword [esp + 0x18], ebx
mov eax, edx
and eax, 0x83befebf
mov ebx, dword [esp + 0x1c]
and ebx, 0x83befebf
sub eax, ebx
mov ebx, esi
or ebx, edx
xor edi, 0x7c410140
add edi, eax
mov ebp, esi
not ebp
mov eax, edx
and eax, ebp
mov dword [esp + 0x1c], eax
or ebp, edx
or edx, 0x83befebf
sub edi, edx
xor esi, ecx
mov edx, ecx
add edi, 0x83befebf
and edx, 0x7c410140
mov ecx, edi
and ecx, edx
add ecx, ecx
mov eax, edi
sub eax, ecx
mov ecx, edi
or ecx, edx
add ecx, eax
xor edi, edx
not edi
add edi, ecx
add edi, edx
mov ecx, dword [esp + 0x18]
lea eax, [ecx + ecx*2]
add eax, 0xbd8bdf07
add ecx, ecx
add ecx, 0x7e5d3f5a
mov edx, ecx
not edx
and edx, 0x7943123c
add edx, eax
lea eax, [edi + edi]
add eax, 2
xor eax, 0x77dfd7c
or ecx, 0x7943123c
sub edx, ecx
lea ecx, [eax + 2]
add edx, 0xc35e76e2
mov edi, edx
and edi, ecx
or edx, ecx
lea ecx, [edi + eax]
add ecx, 2
add edx, ecx
sub edx, eax
add edx, 0xfffffffe
mov eax, edx
xor eax, 0xc35e76e1
sub eax, edx
xor edx, 0x3ca1891e
add edx, eax
add ebx, dword [esp + 0x1c]
add esi, ebx
not esi
add esi, ebp
and esi, 0xfffffffe
lea eax, [edx + esi*2]
mov ecx, 0x3ca1891b
sub ecx, eax
mov edx, dword [esp + 0x3c]
mov dword [edx], ecx
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0x78]
cmp edx, 0x10
jae 0x1005234e
mov ecx, dword [esp + 0x50]
jmp 0x10052350
cmp ecx, 0x4b91fff9
jle 0x100504f0
cmp ecx, 0x4da622a9
jle 0x10050811
cmp ecx, 0x51a3730f
jg 0x100514ae
cmp ecx, 0x4da622aa
je 0x100516c7
cmp ecx, 0x50514977
jne 0x1004f720
mov eax, dword [esp + 0x88]
mov ecx, eax
not ecx
mov edx, ecx
and edx, 1
mov esi, eax
xor esi, 1
add esi, edx
add ecx, ecx
or ecx, 0xfffffffc
sub esi, ecx
mov edx, eax
xor edx, 0xfffffffe
add edx, esi
mov ecx, 1
sub ecx, edx
sub ecx, eax
lea esi, [eax + edx]
add esi, 0xfffffffe
or eax, 0xfffffffe
lea edx, [eax + 1]
mov ebp, esi
mov edi, esi
and edi, edx
sub ebp, edi
sub ebp, edi
mov ebx, 0xfffffffe
sub ebx, eax
or ebx, esi
not eax
add eax, ebp
or esi, edx
add esi, eax
add ebx, esi
or ecx, edx
add ecx, ebx
lea eax, [edi + ecx]
add eax, 2
imul ecx, eax, 0xf62297bf
imul edx, eax, 0xec452f7e
and edx, 0x5e5bd112
imul eax, eax, 0x13bad082
add eax, edx
xor ecx, 0x2f2de889
add ecx, eax
imul eax, ecx, 0xac92a7c1
lea ecx, [eax + 0x51ad7c3]
and ecx, 0xdb025609
add ecx, eax
add ecx, 0x51ad7c3
mov edx, 0xfae5283c
sub edx, eax
or edx, 0x24fda9f6
lea eax, [ecx + edx]
add ecx, edx
add ecx, 0x24fda9f7
mov edx, ecx
and edx, 0xa777cffe
add edx, eax
add edx, 0x24fda9f7
mov eax, ecx
xor eax, 0xa777cffe
add eax, edx
or ecx, 0xa777cffe
sub eax, ecx
lea ecx, [eax - 0x58883002]
mov edx, dword [esp + 0xe8]
mov dword [edx], ecx
mov edx, dword [esp + 0xec]
mov ecx, dword [esp + 0x10c]
cmp edx, 0x10
jae 0x10052379
mov ecx, dword [esp + 0x50]
jmp 0x1005237b
cmp ecx, 0xbf093442
jle 0x1005053b
cmp ecx, 0xc4a1572a
jle 0x10050850
cmp ecx, 0xc8b0fc0a
jg 0x100514e1
cmp ecx, 0xc4a1572b
je 0x100516e2
cmp ecx, 0xc6381a88
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x9659f98c
mov ecx, 0x5d8259a8
mov edx, 0x44294618
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0x37193fb0
jle 0x1005088f
cmp ecx, 0x3cff71cb
jg 0x10051514
cmp ecx, 0x37193fb1
je 0x100516fd
cmp ecx, 0x39449bfb
jne 0x1004f720
mov eax, dword [esp + 0x80]
mov ecx, eax
and ecx, 0x2962e503
add eax, ecx
xor ecx, 0x2962e503
lea edx, [eax + ecx]
add ecx, eax
add ecx, 1
mov eax, ecx
and eax, 0x2962e503
mov edi, ecx
sub edi, eax
sub edi, eax
mov esi, ecx
or esi, 0x2962e503
add esi, edi
or ecx, 0xd69d1afc
add ecx, esi
mov esi, 0xfffffffe
sub esi, edx
or esi, 0x2962e503
add esi, ecx
add esi, eax
imul eax, esi, 0x487d9a39
lea ecx, [eax + 0x68353a6c]
mov edx, ecx
and edx, 0x66b440df
add edx, edx
add eax, eax
add eax, 0xd06a74d8
sub eax, edx
xor ecx, 0x194bbf20
add ecx, eax
imul eax, ecx, 0x25adcbf7
lea ecx, [eax + 0x51b7e2cd]
and ecx, 0x4143c7df
add ecx, eax
add ecx, 0x51b7e2cd
mov edx, 0x2e481d32
sub edx, eax
or edx, 0xbebc3820
lea eax, [edx + ecx]
add eax, 0xbebc3820
not eax
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x78]
cmp edx, 0x10
jae 0x100523a5
mov ecx, dword [esp + 0x50]
jmp 0x100523a7
cmp ecx, 0x56b6d58
jle 0x10050c10
cmp ecx, 0x9c761c9
jg 0x1005155c
cmp ecx, 0x56b6d59
je 0x10051733
cmp ecx, 0x904769b
jne 0x1004f720
movzx eax, byte [esp + 4]
push eax
call fcn.100563a0
add esp, 4
mov esi, eax
movzx eax, byte [esp + 4]
mov edx, eax
xor dl, 4
mov ecx, eax
and cl, 0xfb
add cl, dl
mov ch, dl
and ch, al
mov bh, al
mov dh, al
add dh, al
add dh, 2
mov dl, al
not dl
mov bl, al
sub bl, dh
add dh, dl
or dl, 4
add dl, cl
add dl, 1
and dl, al
or al, 4
mov cl, ch
xor cl, 0xe4
add cl, ch
xor ch, 0x1b
add ch, cl
mov cl, 0x3a
sub cl, ch
add ch, 0xe5
and cl, 0x1c
add cl, ch
and ch, 0x1c
add ch, cl
mov cl, ch
add cl, 1
xor bh, 0xfb
add bh, al
mov al, ch
xor al, 0xa3
sub al, cl
add ch, ch
or ch, 0xb8
add ch, al
add ch, cl
add ch, bh
add ch, 0x49
mov cl, ch
or cl, 0x5c
sub cl, ch
add cl, 0x48
and ch, 0xa3
mov al, ch
not al
add al, cl
and dh, al
or bl, al
not bl
add bl, dh
sub cl, ch
add cl, bl
mov ch, 1
sub ch, cl
mov eax, edx
not al
mov ah, al
and ah, 0x96
add ah, al
mov al, dl
xor al, 0x96
add al, ah
mov ah, dl
add ah, dl
mov dh, ah
xor dh, 0xd2
add dh, al
or ah, 0x2c
add ah, dh
add ah, 0x6d
and dl, 0x69
mov al, dl
not al
and al, ah
add al, dl
xor al, 0x96
xor ch, 0xc7
add cl, cl
add cl, 0xfc
or cl, 0x70
sub ch, cl
add ch, al
movzx eax, ch
imul ecx, eax, 0x7d
mov al, 0xb7
sub al, cl
add cl, 0xc8
mov edx, ecx
and dl, 0x46
add dl, cl
and al, 0x46
add al, dl
movzx eax, al
imul ecx, eax, 0xffffffd5
mov edx, ecx
and dl, 0x6e
mov eax, edx
add al, dl
mov ah, cl
sub ah, al
mov al, cl
or al, 0x6e
add al, ah
mov ah, cl
or ah, 0x91
add ah, al
not cl
or cl, 0x6e
add cl, ah
add cl, dl
test esi, esi
mov eax, 0x10add617
mov edx, 0x5c5e28fc
cmovne eax, edx
cmp cl, 0x97
cmove eax, edx
jmp 0x10052416
cmp ecx, 0x72161ef0
jle 0x10050cbf
cmp ecx, 0x75646046
jg 0x1005158f
cmp ecx, 0x72161ef1
je 0x1005174e
cmp ecx, 0x72293c3e
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xcb124360
mov ecx, 0x9fceb00
mov edx, 0xabece1c1
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0x9fe4fbe6
jg 0x10050cfe
cmp ecx, 0x9627b4bf
jle 0x100515ea
cmp ecx, 0x9627b4c0
je 0x1005175f
cmp ecx, 0x982fbc8f
jne 0x1004f720
mov edi, dword [esp + 0x34]
mov bh, byte [esp + 0x11d]
mov byte [esp + 0x1c], bh
shr bh, 4
mov cl, bh
and cl, 3
mov dh, bh
not dh
mov ch, dh
or ch, 3
mov ah, bh
and ah, 0xc
add ch, ah
add ch, 3
mov al, bh
or al, 3
not ch
add ch, al
add ch, ch
or ch, cl
add ch, 0x86
mov al, ch
and al, 0x7a
add al, al
mov bl, ch
add bl, ch
sub bl, al
xor ch, 0x85
add ch, bl
add dh, dh
and dh, 6
add dh, cl
mov bl, 2
sub bl, dh
add dh, 0xfd
mov cl, dh
and cl, ah
mov byte [esp + 0x18], cl
add cl, cl
mov al, dh
or al, ah
mov dl, al
sub dl, cl
add dl, al
mov cl, byte [edi]
shl cl, 2
or bl, ah
not ah
or ah, dh
mov dh, 0xa
sub dh, ch
add ch, 0xf5
add ah, dl
add ah, bl
add ah, byte [esp + 0x18]
add ah, 2
mov dl, ah
not dl
add dl, dl
add dl, ah
add dl, dl
add dl, 2
mov al, ch
and al, 0x95
add al, ch
or dh, 0x6a
add dh, al
add dh, 0x97
mov ah, dh
and ah, dl
add ah, dh
add ah, dl
mov al, dh
xor al, dl
add al, ah
or dh, dl
sub al, dh
add al, 0x6a
mov edx, eax
and dl, 0x6a
add dl, al
not al
add bh, bh
or bh, 0xf8
and al, 0x6a
add al, dl
sub al, bh
mov edx, eax
add dl, 0x8e
mov ah, dl
and ah, 7
movzx esi, ah
lea ebx, [esi + esi*2]
neg ebx
add bl, dl
mov ah, dl
add ah, dl
xor ah, 0xf0
add ah, bl
or dl, 7
add dl, ah
add dl, al
add dl, 0x9f
mov ch, dl
and ch, cl
mov dh, ch
add dh, ch
add dh, ch
mov bl, ch
not bl
mov ah, dl
not ah
mov al, cl
and al, ah
mov bh, dl
xor bh, cl
sub bh, al
mov al, dl
or al, cl
add al, bh
mov bh, cl
or bh, ah
add bh, al
add bh, bl
add bl, bl
add bl, dh
add bl, 2
mov al, bl
add al, bl
mov dh, al
and dh, 0x40
add dh, bl
or al, 0xbe
sub dh, al
add dh, 0x1d
add bh, 2
or bh, ch
mov al, dh
add al, dh
add al, bh
sub al, dh
mov dh, cl
not dh
mov ch, dh
and ch, 0x4d
or dh, 0xb2
add dh, cl
add dh, 1
or dh, ch
xor dh, 0xb2
mov ch, 0xf7
sub ch, al
add al, 8
mov ebx, eax
and bl, dh
add bl, al
and ch, dh
add ch, bl
mov dh, cl
and dh, 0xc8
mov bl, dh
xor bl, 0xca
mov al, dh
add al, dh
sub bl, al
mov al, cl
xor al, 0x35
add al, bl
add al, cl
mov bl, dh
not bl
or cl, 1
add bl, cl
sub dh, cl
add al, 0xcb
and dh, al
add dh, bl
mov al, dh
and al, 0xca
mov cl, dh
xor cl, 0x35
add cl, al
mov al, dh
not al
add al, cl
mov cl, ch
add cl, 0x99
and dh, 0x35
add dh, al
add dh, 1
mov al, dl
and al, dh
and ah, dh
sub ah, dh
xor dh, dl
add dh, ah
add dh, al
mov dl, al
not dl
and dl, dh
add dl, al
movzx eax, dl
neg dl
mov dh, cl
and dh, 0x62
mov bl, 0x66
sub bl, ch
and bl, 0x9d
or bl, dh
xor cl, 0x62
add cl, bl
add cl, ch
add cl, 0x37
mov ch, cl
and ch, dl
movzx esi, ch
lea ebx, [esi + esi*2]
neg ebx
add bl, cl
lea eax, [eax + eax*2]
neg eax
add al, bl
mov ch, cl
or ch, dl
not ch
add ch, al
xor dl, cl
not dl
add dl, ch
add cl, cl
add cl, dl
add cl, 2
mov eax, ecx
xor al, 0x9d
sub al, cl
mov edx, ecx
add dl, cl
or dl, 0xc4
add dl, al
add dl, cl
movzx eax, dl
imul ecx, eax, 0x4f
add cl, 0x9e
mov eax, ecx
or al, 0x29
mov edx, ecx
sub dl, al
and cl, 0xd6
add cl, dl
add cl, 0xff
mov eax, ecx
xor al, 0xdd
add cl, cl
or cl, 0x44
add cl, al
add cl, 1
mov eax, ecx
not al
mov edx, ecx
xor dl, 0xd6
add dl, cl
and al, 0x29
add al, dl
and cl, 0xd6
add cl, al
movzx eax, cl
imul ecx, eax, 0xffffffaf
add cl, 0x65
mov eax, ecx
and al, 0xe1
mov edx, eax
add dl, al
mov ah, cl
and ah, 0x1e
add ah, dl
mov edx, ecx
sub dl, ah
mov ah, cl
or ah, 0xe1
add ah, dl
or cl, 0x1e
add cl, ah
add cl, al
add cl, 0xe2
mov eax, ecx
not al
mov edx, ecx
xor dl, 0xc2
add dl, cl
and al, 0x3d
add al, dl
and cl, 0xc2
add cl, al
add cl, 0xe2
mov byte [esp + 0x16], cl
mov eax, dword [esp + 0x48]
movzx ecx, byte [esp + 0x16]
mov byte [eax], cl
movzx ebx, byte [esp + 0x1c]
shl bl, 4
movzx ecx, byte [esp + 0x11e]
shr cl, 2
mov eax, ecx
and al, 0xf
mov edx, ecx
xor dl, 0x30
add dl, al
mov eax, ecx
not al
or al, 0x30
add al, dl
add al, 1
and al, cl
mov edx, eax
add dl, 0x8b
mov ecx, edx
add cl, dl
xor dl, 0x74
add dl, cl
xor cl, 0x16
add cl, dl
add al, al
mov dl, 0xe8
sub dl, al
or dl, 0x16
add dl, cl
movzx eax, dl
imul eax, eax, 0xffffffd1
add al, 0x7d
mov ecx, eax
not cl
mov edx, ecx
and dl, 0x6e
add dl, al
or cl, 0x91
sub dl, cl
movzx eax, dl
imul eax, eax, 0x31
mov cl, 0x3e
sub cl, al
add al, 0xc1
mov edx, eax
and dl, bl
mov ch, al
or ch, bl
sub ch, dl
mov dh, bl
not dh
or dh, al
add dh, ch
mov ch, bl
or cl, bl
add cl, dh
add cl, dl
add cl, 2
xor al, bl
or al, cl
mov ecx, eax
add cl, al
sub cl, al
movzx eax, cl
imul eax, eax, 0xffffffa7
mov ecx, eax
and cl, 0xd2
add cl, al
not al
or al, 0x2d
add al, cl
add al, 0xd4
mov ecx, eax
and cl, 0xf5
add cl, al
mov edx, eax
xor dl, 0xf5
add dl, cl
or al, 0xf5
sub dl, al
movzx ecx, dl
lea eax, [ecx + ecx*2]
shl eax, 3
sub eax, ecx
mov cl, 0x31
sub cl, al
add al, 0xce
mov edx, eax
mov ch, al
and ch, 0x3d
add al, al
or al, 0x7a
add al, ch
not dl
and dl, 0x42
add dl, dl
add dl, al
or cl, 0x3d
sub dl, cl
add dl, 0x3e
mov byte [esp + 0x11a], dl
mov ecx, dword [esp + 0x5c]
mov edx, ecx
not edx
mov eax, edx
and eax, 0x8fce2d3b
lea eax, [eax + eax*2]
lea esi, [ecx + ecx]
xor esi, 0x1f9c5a76
sub esi, eax
lea eax, [ecx + edx*2]
add eax, 1
or edx, 0x8fce2d3b
lea edi, [esi + edx]
add edx, esi
add edx, 0x8fce2d3c
and eax, ecx
mov ecx, edx
and ecx, 0x5556ca5e
add ecx, edi
add ecx, 0x8fce2d3c
mov esi, 0x7031d2c3
sub esi, edi
and esi, 0xaaa935a1
add esi, ecx
xor edx, 0x5556ca5e
add edx, esi
lea ecx, [edx + eax]
add eax, edx
add eax, 1
and eax, 1
lea eax, [ecx + eax*2]
add eax, 1
and ecx, 1
lea eax, [eax + ecx*2]
imul ecx, eax, 0xc3c438b5
lea edx, [ecx + ecx*2]
add edx, 0x5f103200
imul eax, eax, 0x78778e96
add eax, 0x15f533fe
and eax, 0xbce08920
add eax, edx
add ecx, ecx
add ecx, 0xea0acc00
or ecx, 0xbce08920
sub eax, ecx
imul esi, eax, 0x3f54f59d
lea ecx, [esi - 0x2355da07]
mov eax, ecx
not eax
mov edx, 0x2355da06
sub edx, esi
mov edi, edx
and edi, 0xb44823b0
neg edi
add esi, edi
add esi, 0xdcaa25f9
or ecx, 0xb44823b0
add ecx, esi
or edx, 0xb44823b0
add edx, ecx
or eax, 0x4bb7dc4f
add eax, edx
add eax, 0xbc684c06
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x5c]
cmp eax, 2
mov eax, 0x9659f98c
mov ecx, 0xe7f8fa15
cmovge eax, ecx
mov ecx, 0x30447e7a
jmp 0x1004f720
cmp ecx, 0xfba6038
jg 0x10050d3d
cmp ecx, 0xd30b733
je 0x1005177a
cmp ecx, 0xeaad4e4
je 0x10051795
cmp ecx, 0xf328630
jne 0x1004f720
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0xcc]
mov eax, 0x38626390
mov ecx, 0x725cf6af
jmp 0x1004f716
cmp ecx, 0xd58531e3
jg 0x10050d7c
cmp ecx, 0xcba7da24
je 0x100517b0
cmp ecx, 0xcce6a326
je 0x1005180c
cmp ecx, 0xd13a5525
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xe7f8fa15
mov ecx, 0x4355dbc6
mov edx, 0x4b91fffa
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0x45c1ba3d
jg 0x10050dbb
cmp ecx, 0x425d2ec1
je 0x10051820
cmp ecx, 0x4355dbc6
je 0x1005183b
cmp ecx, 0x44294618
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x8f8ec577
mov ecx, 0x5822b50c
mov edx, 0x3cff71cc
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0xb0e64604
jg 0x10050dfa
cmp ecx, 0xabece1c1
je 0x10051856
cmp ecx, 0xad2a7c0e
je 0x10051871
cmp ecx, 0xafa91ddf
jne 0x1004f720
mov ecx, dword [esp + 0x84]
mov eax, ecx
and eax, 0x7ffffffe
mov edx, ecx
and edx, 1
lea eax, [edx + eax*2]
mov edx, ecx
xor edx, 0xfffffffe
sub edx, eax
mov esi, ecx
or esi, 0xfffffffe
add esi, edx
lea edx, [ecx + ecx]
mov eax, edx
or eax, 2
add eax, esi
and eax, ecx
mov esi, ecx
neg esi
lea edi, [ecx - 1]
and edi, eax
add edi, eax
add edi, ecx
not eax
or eax, esi
add eax, edi
mov edi, ecx
not edi
mov esi, edi
and esi, 0xff2fb882
mov ebx, ecx
and ebx, 0xd0477d
add ebx, ecx
xor ecx, 0xff2fb882
add ecx, ebx
xor edx, 0x1a08efa
add edx, ecx
add edi, edi
or edi, 0x1a08efa
add edx, edi
add edx, 0xff2fb886
or edx, esi
mov esi, edx
xor esi, 0xd0477d
not edx
mov ecx, edx
and ecx, 0xff2fb882
add ecx, esi
or edx, 0xd0477d
sub ecx, edx
lea edx, [ecx + 0xd0477d]
mov esi, edx
and esi, 1
add esi, ecx
add esi, 0xd0477d
xor edx, 1
add edx, esi
add ecx, ecx
add ecx, 0x1a08efa
or ecx, 2
sub edx, ecx
lea ecx, [edx + eax]
add ecx, 2
imul eax, ecx, 0xea930601
imul ecx, ecx, 0xd5260c02
and ecx, 0x354ff358
mov edx, eax
or edx, 0x9aa7f9ac
add edx, eax
mov esi, eax
or esi, 0x65580653
add esi, edx
not eax
mov edx, eax
or edx, 0x9aa7f9ac
add edx, esi
sub ecx, edx
or eax, 0x65580653
add eax, ecx
imul eax, eax, 0xde6f05ff
lea ecx, [eax + 0x2190fa01]
mov edx, dword [esp + 0x3c]
mov dword [edx], ecx
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0x78]
cmp edx, 0x10
jae 0x100523c9
mov ecx, dword [esp + 0x50]
jmp 0x100523cb
cmp ecx, 0x1d1643c7
je 0x1005196e
cmp ecx, 0x211cd6e5
je 0x10051989
cmp ecx, 0x23ffd36d
jne 0x1004f720
movsx edx, byte [esp + 0xb]
mov ecx, ebp
call fcn.10052470
mov ecx, 0x30447e7a
mov eax, 0x52c3a24b
jmp 0x1004f720
cmp ecx, 0xf6622a5c
je 0x1005199a
cmp ecx, 0xf7cb99a2
je 0x10051a0d
cmp ecx, 0xf89be127
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xab5f2bb8
mov ecx, 0x2944006b
mov edx, 0x51a37310
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0x527f1c3c
je 0x10051a28
cmp ecx, 0x553ed2dc
je 0x10051a43
cmp ecx, 0x5822b50c
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x8f8ec577
mov ecx, 0x1c15d86f
mov edx, 0xf209e8aa
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0x80f42f3f
je 0x10051a5e
cmp ecx, 0x8126b2ff
je 0x10051a79
cmp ecx, 0x8284eefc
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xff4925dc
mov ecx, 0xfbc50849
mov edx, 0xe78d2089
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0x14b94fa7
je 0x10051a94
cmp ecx, 0x16df0643
je 0x10051aaf
cmp ecx, 0x195057ec
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xf3125ece
mov ecx, 0x1c15d86f
mov edx, 0xf6622a5c
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0xdee69344
je 0x10051aca
cmp ecx, 0xe568fefa
je 0x10051ae5
cmp ecx, 0xe78d2089
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xfda94cda
mov ecx, 0x1c15d86f
mov edx, 0x37193fb1
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0x4b91fffa
je 0x10051ba7
cmp ecx, 0x4c0cfb21
je 0x10051bc2
cmp ecx, 0x4c953996
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x9fce5242
mov ecx, 0x1c15d86f
mov edx, 0x9fe4fbe7
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0xbf093443
je 0x10051bdd
cmp ecx, 0xbfaadbc7
je 0x10051bf8
cmp ecx, 0xc0ba2ee1
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x725e2244
mov ecx, 0x1c15d86f
mov edx, 0x9c761ca
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0x30447e7a
je 0x10051c13
cmp ecx, 0x319461db
je 0x10051c1d
cmp ecx, 0x31d9d9cc
jne 0x1004f720
mov bh, byte [esp + 0xe]
mov al, bh
shl al, 2
movzx ecx, byte [esp + 0x44]
shr cl, 4
mov edx, ecx
not dl
mov ah, cl
and ah, 0xc
or dl, 0xfc
add dl, ah
or cl, 3
sub cl, dl
movzx ecx, cl
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*8]
add cl, 0xbc
mov edx, ecx
and dl, 0x7d
add dl, cl
or cl, 0x82
sub cl, dl
add cl, 1
movzx edx, cl
imul ecx, edx, 0x4f
mov ah, cl
xor ah, 0x80
imul edx, edx, 0xffffff9e
or dl, 0xd8
add dl, ah
mov ah, cl
xor ah, 0x13
add ah, dl
xor cl, 0x7f
add cl, ah
add cl, 0x29
mov ah, cl
xor ah, 0x80
mov dh, al
not dh
mov bl, dh
add bl, dh
mov dl, bh
shl dl, 3
add dl, bl
add dl, 2
mov bh, dl
xor bh, dh
sub bh, bl
mov bl, dl
or bl, dh
add bl, bh
add bl, dl
not dl
or dl, dh
add dl, dl
add dl, bl
add dl, 1
mov dh, cl
not dh
add dh, dh
add dh, cl
add dh, 0x81
not dl
add dl, al
or dl, dh
or ah, al
mov bl, ah
add bl, ah
or bl, 1
mov dh, ah
not dh
add dh, bl
sub ah, bl
mov bl, ah
and bl, 0xd4
add bl, ah
mov bh, ah
xor bh, 0x2b
add bh, bl
mov bl, ah
add bl, ah
xor bl, 0xa8
add bl, bh
not ah
add ah, ah
or ah, 0xa8
add ah, bl
add ah, 0x2f
and dh, 0x2b
mov bl, dh
not bl
and bl, ah
add bl, dh
xor bl, 0xd4
mov ah, dl
xor ah, 0xd1
add dl, dl
or dl, 0xa2
sub ah, dl
add ah, bl
add ah, 0xd1
mov edx, ecx
and dl, 0xbd
xor dl, 0x3d
mov dh, cl
add dh, cl
and dh, 0x84
and cl, 0x42
or cl, dh
xor cl, 0x42
add cl, 0xbe
or dl, cl
mov dh, cl
and dh, 0x42
mov bl, dh
add bl, dh
mov bh, dl
xor bh, 0x42
sub bh, bl
mov bl, dl
or bl, 0x42
add bl, bh
or cl, 0xbd
add cl, bl
not dl
or dl, 0x42
add dl, cl
add dl, dh
add dl, 2
or dl, al
mov al, ah
and al, 0x73
add al, ah
mov cl, ah
xor cl, 0x73
add cl, al
or ah, 0x73
sub cl, ah
add cl, dl
movzx eax, cl
imul eax, eax, 0x57
mov ecx, eax
and cl, 0x1a
mov ch, al
add ch, al
or ch, 0x34
add ch, cl
not al
mov cl, al
and cl, 0x65
add cl, cl
add cl, ch
add cl, 0x1a
or al, 0x1a
not cl
add cl, al
mov byte [esp + 0x18], cl
movzx eax, byte [esp + 0x24]
shr al, 2
mov ecx, eax
and cl, 0xf
mov byte [esp + 0x1c], cl
movzx ecx, cl
lea ecx, [ecx + ecx*2]
neg ecx
mov dh, al
xor dh, 0x30
movzx esi, dh
lea ebx, [esi + esi*2]
add bl, cl
mov ch, al
or ch, 0xf
add bl, ch
add bl, al
add bl, 0x11
and bl, al
movzx esi, bl
mov ah, al
xor ah, 0xf
mov cl, bl
lea edx, [esi + esi*2]
add bl, 0xff
and bl, ah
add bl, bl
sub dl, bl
mov edi, ebp
mov ebp, edx
movzx esi, byte [esp + 0x18]
imul ebx, esi, 0xffffff99
mov edx, ebx
and dl, 0x20
add dl, bl
not bl
and bl, 0x20
add bl, dl
mov esi, dword [esp + 0xb8]
mov edx, dword [esp + 0x40]
mov byte [esi], dl
add bl, 0x6a
mov byte [esp + 0xb], bl
neg cl
mov edx, ebp
mov ebp, edi
sub dl, ah
or cl, ah
add cl, cl
add cl, dl
mov dh, al
not dh
mov dl, dh
and dl, 0xf
sub dl, byte [esp + 0x1c]
or dh, 0xf
add dh, dl
add dh, ch
mov dl, al
or dl, 0xf0
add dl, dh
mov ah, dl
add ah, 2
and al, 0x30
mov dh, ah
xor dh, al
mov ch, 0x7d
sub ch, dl
or ch, al
not al
add dh, al
or al, ah
sub dh, al
add dl, dl
add dl, dh
add ch, ch
add ch, dl
add ch, 7
add cl, 0xb7
mov eax, ecx
and al, ch
add cl, al
add cl, ch
sub cl, al
mov al, 0x36
sub al, cl
add cl, 0x49
mov edx, ecx
and dl, 0x34
add dl, cl
and al, 0x34
add al, dl
movzx eax, al
imul edx, eax, 0x33
mov ecx, edx
add cl, 0x71
mov al, 0xe
sub al, dl
and al, 0xe
add al, al
mov ah, cl
sub ah, al
mov al, byte [esp + 0x44]
shl al, 4
xor cl, 0xe
add cl, ah
sub cl, dl
add cl, 0x50
mov edx, ecx
and dl, 0xf1
add dl, cl
or cl, 0xe
sub dl, cl
movzx ecx, dl
lea edx, [ecx + ecx*4]
neg edx
mov ecx, edx
add cl, 0x3a
mov ah, cl
xor ah, 0x39
add ah, dl
xor cl, 0xc6
add cl, ah
mov dl, 0xcb
sub dl, cl
add cl, 0x74
and dl, 0x3a
add dl, cl
and cl, 0x3a
add cl, dl
mov ch, cl
add ch, 0x8c
mov ah, ch
and ah, al
mov dl, ch
add dl, ch
sub ah, dl
mov dl, ch
xor dl, al
add ah, dl
add ah, al
not al
or al, ch
add al, al
add al, ah
add al, cl
add al, 0x8e
mov ecx, eax
or cl, dl
mov ah, cl
add ah, cl
sub cl, ah
add cl, dl
mov ah, dl
not ah
or ah, al
add ah, cl
and al, dl
sub al, ah
mov cl, 0x2b
sub cl, al
add al, 0x54
mov edx, eax
and dl, 0x54
add dl, al
or cl, 0xab
add cl, dl
add cl, 0xac
mov byte [esp + 0xc], cl
movzx ecx, byte [esp + 0x24]
mov eax, ecx
shl al, 6
shl cl, 7
sub cl, al
add cl, byte [esp + 0x40]
mov byte [esp + 0xd], cl
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0xc8]
mov eax, 0xa2393f13
mov ecx, 0xcb124360
jmp 0x1004f716
cmp ecx, 0xfdf0a82d
je 0x10051c39
cmp ecx, 0xfe91e7db
je 0x10051c54
cmp ecx, 0x1982a6c
jne 0x1004f720
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x110]
lea eax, [ecx - 0x33f5a465]
mov edx, eax
and edx, 0x33f5a464
or eax, 0x33f5a464
add ecx, ecx
mov esi, 0x67eb48c8
sub esi, ecx
add eax, esi
or esi, 0x9814b736
add esi, edx
sub esi, eax
imul eax, esi, 0xda5d0815
lea ecx, [eax + 0x55f54892]
and ecx, 0xdd3f24cc
add ecx, eax
add ecx, 0x55f54892
mov edx, 0xaa0ab76d
sub edx, eax
or edx, 0x22c0db33
add edx, ecx
imul eax, edx, 0x68ca873d
add eax, 0x68ca873d
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x8c]
cmp ecx, eax
mov eax, 0x886e1712
jmp 0x100515e0
cmp ecx, 0x6242c4c7
je 0x10051c6f
cmp ecx, 0x675c6546
je 0x10051c89
cmp ecx, 0x71c1a085
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xf79ba356
mov ecx, 0x92fc866e
mov edx, 0x195057ec
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0x9fe4fbe7
je 0x1004f6c3
cmp ecx, 0xa4f45fb1
je 0x10051ca4
cmp ecx, 0xa6a20d99
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x5c5e28fc
mov ecx, 0xbb02b9fe
mov edx, 0xdee69344
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0xfba6039
je 0x10051cbf
cmp ecx, 0x1083c885
je 0x10051cfe
cmp ecx, 0x141bdb7b
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x5c5e28fc
mov ecx, 0x1c15d86f
mov edx, 0x1b8f566e
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0xd58531e4
je 0x10051d19
cmp ecx, 0xd844dc18
je 0x10051d34
cmp ecx, 0xde79261f
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x9659f98c
mov ecx, 0x1c15d86f
mov edx, 0x951fb003
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0x45c1ba3e
je 0x10051d4f
cmp ecx, 0x46cedde8
je 0x10051d95
cmp ecx, 0x486c57ff
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x52c3a24b
mov ecx, 0x1c15d86f
mov edx, 0xf328630
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0xb0e64605
je 0x10051dd6
cmp ecx, 0xbb02b9fe
je 0x10051df1
cmp ecx, 0xbe33442c
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xf3125ece
mov ecx, 0x2c5d4c7c
mov edx, 0xf7cb99a2
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0x2c5d4c7c
je 0x10051e0c
cmp ecx, 0x2f3fdd9d
jne 0x1004f720
mov ecx, 0x30447e7a
jmp 0x1004f720
cmp ecx, 0xfbc50849
je 0x10051e27
cmp ecx, 0xfc16adb8
jne 0x1004f720
mov edx, dword [esp + 0xa8]
mov eax, edx
neg eax
lea ecx, [edx - 1]
or ecx, 0xfffffffe
add ecx, edx
mov edx, eax
xor edx, 0xfffffffe
add edx, ecx
or eax, 1
add eax, edx
lea ecx, [eax + eax]
add ecx, 0x5fa85182
mov edx, ecx
and edx, 0xa057ae7e
add edx, eax
mov eax, ecx
xor eax, 0xa057ae7e
add eax, edx
or ecx, 0xa057ae7e
sub eax, ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc0], ecx
movzx ecx, byte [esp + 0x13]
mov byte [esp + 8], cl
movzx ecx, byte [esp + 0x14]
mov byte [esp + 9], cl
movzx ecx, byte [esp + 0x15]
mov byte [esp + 0xa], cl
add eax, 1
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xf8]
cmp dword [eax], 0x10
mov eax, dword [esp + 0xfc]
jae 0x100523f1
mov eax, dword [esp + 0xf4]
jmp 0x100523f3
cmp ecx, 0x5ec4baf5
je 0x10051e42
cmp ecx, 0x5f17490b
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x7d634d70
mov ecx, 0x425d2ec1
mov edx, 0xc0ba2ee1
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0x90b28bbd
je 0x10051e4f
cmp ecx, 0x929385cd
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xafb58d1c
mov ecx, 0x1c15d86f
mov edx, 0x90b28bbd
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0x1b8f566e
je 0x10051e88
cmp ecx, 0x1c15d86f
jne 0x1004f720
mov ecx, 0x2f3fdd9d
jmp 0x1004f720
cmp ecx, 0xf209e8aa
je 0x10052125
cmp ecx, 0xf24ed34c
jne 0x1004f720
mov eax, dword [esp + 0x34]
movsx eax, byte [eax]
push dword [esp + 0x54]
push eax
push dword [esp + 0x60]
call fcn.10054ec0
add esp, 0xc
mov ecx, dword [esp + 0x64]
lea edx, [ecx + ecx]
sub edx, eax
lea esi, [eax - 1]
mov edi, esi
xor edi, ecx
add edi, edx
lea edx, [eax + edi]
add edx, 0xffffffff
or esi, ecx
add esi, esi
sub edx, esi
mov dword [esp + 0x30], edx
mov ebx, ecx
not ebx
mov ebp, ecx
mov esi, ecx
xor esi, 0xd257221c
mov edi, ebx
or edi, 0xd257221c
add edi, esi
mov esi, ecx
or ebp, 0x2da8dde3
add ebp, edi
or esi, 0xd257221c
sub ebp, esi
mov edx, eax
not eax
mov dword [esp + 0x2c], eax
lea eax, [edx + eax*2]
mov esi, edx
mov dword [esp + 0x28], edx
mov edi, 0xfffffffe
sub edi, eax
or edi, ecx
lea eax, [ebx + ebx*2]
add eax, ecx
lea ebx, [ecx + eax]
add ebx, 2
mov edx, ecx
add ebp, 1
and edx, 0xd257221c
or edx, ebp
mov ecx, esi
xor ecx, 0x2da8dde3
mov ebp, edx
not ebp
and ebp, ecx
add ebp, ebp
mov eax, ecx
xor eax, edx
add ecx, eax
sub ebp, ecx
not eax
add eax, ebp
add eax, edx
add eax, dword [esp + 0x30]
mov ecx, edi
not ecx
mov edx, ecx
and edx, 0xf330d3b9
add ecx, ecx
mov ebp, ecx
and ebp, 0x199e588c
add ebp, edx
lea edx, [edi + edi]
mov esi, edx
xor esi, 0xe661a772
add esi, ebp
or ecx, 0x199e588c
sub esi, ecx
and edx, 0x199e588c
or edi, 0xf330d3b9
sub edx, edi
add edx, 0xf330d3b9
or edx, esi
xor edx, 0xf330d3b9
lea ecx, [eax + edx]
add eax, edx
add eax, 2
or ebx, dword [esp + 0x2c]
add ecx, ebx
add ecx, 2
mov edx, eax
xor edx, ebx
sub edx, ecx
mov ecx, ebx
not ecx
add ecx, edx
and ebx, eax
not eax
add eax, ecx
lea eax, [eax + ebx*2]
imul eax, eax, 0xbb870159
lea ecx, [eax + 0x580c6459]
mov edx, ecx
xor edx, 0xf2fb118b
add eax, edx
add eax, 0x580c6459
xor ecx, 0xd04ee74
add ecx, eax
imul eax, ecx, 0xccaf36e9
add eax, 0xed382900
mov edx, eax
or edx, 0x21c4b67d
or eax, 0xde3b4982
sub edx, eax
imul eax, ecx, 0x995e6dd2
add eax, edx
imul ecx, ecx, 0x66a1922e
add ecx, 0x258fadfe
or ecx, 0x43896cfa
lea edx, [eax + ecx]
add eax, ecx
add eax, 0xb8ab9b84
mov ecx, eax
and ecx, 0x6c
add edx, ecx
add edx, 0xb8ab9b84
mov ecx, eax
xor ecx, 0x6c
add ecx, edx
or eax, 0x6c
sub ecx, eax
add cl, 0x6d
cmp dword [esp + 0x28], 1
sbb edx, edx
or dl, cl
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x34]
mov byte [eax], dl
mov eax, dword [esp + 0x70]
movsx eax, byte [eax]
push dword [esp + 0x54]
push eax
push dword [esp + 0x60]
call fcn.10054ec0
add esp, 0xc
xor ecx, ecx
sub ecx, dword [esp + 0x64]
lea edx, [eax - 0x1065ffc0]
and edx, ecx
add edx, eax
add edx, 0xef9a0040
mov esi, 0x1065ffbf
sub esi, eax
and esi, ecx
add esi, edx
imul ecx, esi, 0xce4dc271
lea edx, [ecx + 0x4744c334]
mov esi, 0x38bb3ccb
sub esi, ecx
and esi, 0x66673c9a
add esi, esi
neg esi
add esi, ecx
add esi, 0x4744c334
xor edx, 0x66673c9a
add edx, esi
sub edx, ecx
imul edx, edx, 0xb275be91
lea ecx, [edx + 0x669fb85a]
mov esi, ecx
xor esi, 0x48
add esi, edx
xor ecx, 0xb7
add ecx, esi
add cl, 0x13
cmp eax, 1
sbb edx, edx
or dl, cl
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x70]
mov byte [eax], dl
mov eax, dword [esp + 0x74]
movsx eax, byte [eax]
push dword [esp + 0x54]
push eax
push dword [esp + 0x60]
call fcn.10054ec0
add esp, 0xc
mov edx, eax
xor edx, 0xd570a749
add edx, eax
add edx, eax
mov ecx, eax
not ecx
add ecx, ecx
or ecx, 0xaae14e92
add ecx, edx
sub ecx, dword [esp + 0x64]
lea edx, [ecx + 0x11407e4]
and edx, 0xd4
lea esi, [edx + ecx]
add esi, 0x11407e4
mov edx, 0xd570a81b
sub edx, ecx
or edx, 0x2b
add edx, esi
add dl, 0xd6
cmp eax, 1
sbb ecx, ecx
or cl, dl
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x74]
mov byte [eax], cl
mov eax, dword [esp + 0xb8]
movsx eax, byte [eax]
push dword [esp + 0x54]
push eax
push dword [esp + 0x60]
call fcn.10054ec0
add esp, 0xc
mov ebp, dword [esp + 0x64]
lea esi, [ebp - 1]
mov edx, ebp
add edx, ebp
mov dword [esp + 0x44], edx
mov ecx, esi
sub ecx, edx
not ecx
mov ebx, eax
and ebx, ecx
add ebx, ebx
mov edi, eax
sub edi, ebx
add edi, ecx
and edi, eax
lea ecx, [eax - 1]
mov ebx, edi
and ebx, ecx
add ebx, ebx
sub ebx, edi
sub ebx, edi
add ebx, eax
xor edi, ecx
add edi, ebx
sub edi, eax
mov ecx, ebp
neg ecx
lea edx, [edi + 0x7baa7210]
and edx, esi
add edx, edi
add edx, 0x7baa7210
sub edx, ebp
mov esi, 0x84558def
sub esi, edi
or esi, ecx
lea ecx, [edx + esi]
add esi, edx
add esi, 1
mov edx, esi
and edx, 0x7baa720f
add ecx, edx
add ecx, 1
mov edx, esi
xor edx, 0x7baa720f
add edx, ecx
or esi, 0x7baa720f
sub esi, edx
mov ecx, ebp
not ecx
mov edi, eax
mov dword [esp + 0x24], eax
and eax, ecx
mov edx, ebp
and edx, edi
sub eax, edx
mov edx, edi
or edx, ecx
mov dword [esp + 0x40], ecx
lea ebx, [eax + edx*2]
mov edx, edi
not edx
mov eax, ebp
and eax, edx
lea ebx, [ebx + eax*2]
or edx, ecx
sub ebx, edx
mov ecx, eax
not ecx
lea edx, [ebx + 1]
and ecx, edx
mov edi, eax
or edi, edx
add edi, ecx
sub ebx, edi
and eax, edx
lea ecx, [ebx + ebx]
add ecx, 4
sub eax, ecx
add eax, ebx
add eax, 2
add eax, esi
add eax, 0x7baa7210
mov esi, ebp
or esi, dword [esp + 0x24]
mov edi, esi
neg edi
mov ebx, eax
not ebx
and ebx, edi
mov ecx, eax
xor ecx, edi
or edi, eax
sub eax, ebx
add esi, esi
sub eax, esi
add ecx, eax
sub edi, ecx
mov eax, ebp
xor eax, 0x37a4e15c
mov ecx, ebp
or ecx, 0xc85b1ea3
add ecx, ebp
sub eax, ecx
mov edx, dword [esp + 0x44]
or edx, 0x90b63d46
lea ecx, [eax + edx]
add eax, edx
add eax, 0x37a4e15d
and ebp, 0xc85b1ea3
mov edx, eax
not edx
and edx, ebp
add edx, ecx
add edx, 0x37a4e15d
mov ebx, dword [esp + 0x24]
mov esi, ebx
xor esi, 0x37a4e15c
add edx, edx
or ebp, eax
sub edx, ebp
mov ebp, dword [esp + 0x68]
mov eax, esi
and eax, edx
sub eax, esi
mov ecx, esi
xor ecx, edx
add ecx, eax
or esi, edx
add esi, ecx
sub edx, esi
mov eax, edx
not eax
lea eax, [eax + edx*2]
add eax, 0xfffffffe
lea ecx, [edx + eax*2]
add ecx, 0xffffffff
add eax, eax
sub eax, ecx
lea ecx, [edi + edi]
sub ecx, edi
lea edx, [ecx - 0x5b987276]
mov esi, edx
not esi
and esi, eax
add ecx, esi
add ecx, 0xa4678d8a
and edx, eax
lea eax, [ecx + edx]
add ecx, edx
add ecx, 0x5b987276
and ecx, 0x6d00065b
add ecx, eax
add ecx, 0x5b987276
mov edx, 0x24678d89
sub edx, eax
and edx, 0x6d00065b
add edx, ecx
add edx, dword [esp + 0x40]
imul eax, edx, 0x69fbb2d
lea ecx, [eax - 0x422a96ff]
mov edx, 0x422a96fe
sub edx, eax
and edx, 0x2a96f643
add edx, edx
neg edx
add edx, eax
add edx, 0xbdd56901
xor ecx, 0xaa96f643
add ecx, edx
sub ecx, eax
lea eax, [ecx + 0x734cff7b]
mov edx, eax
and edx, 0x556909bc
add ecx, edx
add ecx, 0x734cff7b
or eax, 0xaa96f643
sub ecx, eax
imul eax, ecx, 0xbe474ca5
add eax, 0xb1651272
mov dword [esp + 0x40], eax
test ebx, ebx
mov eax, 0xff4925dc
mov ecx, 0xbad98f3d
cmove eax, ecx
mov ecx, 0x30447e7a
jmp 0x10051623
cmp ecx, 0x51a37310
je 0x10052162
cmp ecx, 0x51cc7da7
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x9bcacafd
mov ecx, 0x1c15d86f
mov edx, 0x46cedde8
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0xc8b0fc0b
je 0x1005217d
cmp ecx, 0xca5b6678
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x193a7ae6
mov ecx, 0x1c15d86f
mov edx, 0xfc16adb8
cmove ecx, edx
jmp 0x1004f720
cmp ecx, 0x3cff71cc
je 0x10052198
cmp ecx, 0x3eb15c72
jne 0x1004f720
mov eax, dword [esp + 0x8c]
movzx eax, byte [esp + eax + 0x119]
mov byte [esp + 0x12], al
mov eax, 0x9fce5242
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xac], ecx
mov ecx, 0x30447e7a
jmp 0x1004f720
cmp ecx, 0x9c761ca
je 0x100521b3
cmp ecx, 0x9fceb00
jne 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xe4267047
mov ecx, 0xd13a5525
mov edx, 0xc8b0fc0b
cmovl ecx, edx
jmp 0x1004f720
cmp ecx, 0x75646047
je 0x10052333
cmp ecx, 0x7ac5fec7
jne 0x1004f720
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x48]
movzx ecx, byte [esp + 5]
mov byte [eax], cl
mov eax, dword [esp + 0xb4]
movzx ecx, byte [esp + 6]
mov byte [eax], cl
mov eax, dword [esp + 0xbc]
movzx ecx, byte [esp + 7]
mov byte [eax], cl
cmp dword [esp + 0x5c], 0
mov eax, 0xc7d9b833
mov ecx, 0x9659f98c
jmp 0x10052326
cmp ecx, 0x92fc866e
jne 0x10052443
mov ecx, dword [esp]
cmp ecx, 0xf79ba356
mov ecx, 0x1c15d86f
mov edx, 0x1982a6c
cmove ecx, edx
jmp 0x1004f720
mov ecx, 0x30447e7a
mov dword [esp + 0x40], 0xffffffff
mov eax, 0xff4925dc
mov edx, dword [esp + 0x28]
mov byte [esp + 0x24], dl
mov edx, dword [esp + 0x30]
mov byte [esp + 0xe], dl
mov edx, dword [esp + 0x2c]
mov byte [esp + 0x44], dl
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x69e8ca55
mov ecx, 0xeaad4e4
mov edx, 0xa6a20d99
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x9aeeb4ed
mov ecx, 0x1d1643c7
mov edx, 0xde79261f
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x5e61bb9b
mov ecx, 0x1c15d86f
mov edx, 0xafa91ddf
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x7d634d70
mov ecx, 0x1c15d86f
mov edx, 0xe568fefa
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xfda94cda
mov ecx, 0x8284eefc
mov edx, 0x71c1a085
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x10add617
mov ecx, 0x1c15d86f
mov edx, 0x7ac5fec7
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xafb58d1c
mov ecx, 0x929385cd
mov edx, 0xf9d993ce
cmovl ecx, edx
jmp 0x1004f720
mov eax, dword [esp + 0x34]
mov byte [eax], 0xff
mov eax, dword [esp + 0x70]
mov byte [eax], 0xff
mov eax, dword [esp + 0x74]
mov byte [eax], 0xff
mov ecx, 0x30447e7a
mov al, 0xff
mov dword [esp + 0x28], eax
mov eax, 0xbad98f3d
mov dl, 0xff
mov dword [esp + 0x30], edx
mov dl, 0xff
mov dword [esp + 0x2c], edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xe7f8fa15
mov ecx, 0x1c15d86f
mov edx, 0x45c1ba3e
cmove ecx, edx
jmp 0x1004f720
movsx edx, byte [esp + 0xc]
mov ecx, ebp
call fcn.10052470
jmp 0x100523ba
mov ecx, dword [esp]
cmp ecx, 0x38626390
mov ecx, 0x1c15d86f
mov edx, 0x72161ef1
cmove ecx, edx
jmp 0x1004f720
movsx edx, byte [esp + 0x17]
mov ecx, ebp
call fcn.10052470
mov eax, 0xf79ba356
mov ecx, 0x30447e7a
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x725e2244
mov ecx, 0x5f17490b
mov edx, 0x16df0643
cmovl ecx, edx
jmp 0x1004f720
mov eax, 0x10164bbc
mov ecx, dword [0x10164bcc]
mov dword [esp + 0xd4], ecx
cmp dword [0x10164bd0], 0x10
jb 0x100517d0
mov eax, dword [0x10164bbc]
mov dword [esp + 0xd8], eax
cmp dword [esp + 0xd4], 0
sete byte [esp + 0x23]
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x104], eax
mov ecx, 0x30447e7a
mov dword [esp + 0x94], 0
mov eax, 0x9bcacafd
jmp 0x1004f720
cmp byte [esp + 0x22], 0
mov eax, 0x7d634d70
mov ecx, 0x9659f98c
jmp 0x10051dc9
mov ecx, dword [esp]
cmp ecx, 0x7e261a7b
mov ecx, 0xb0e64605
mov edx, 0x198b0526
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xebeb4276
mov ecx, 0x80f42f3f
mov edx, 0x56b6d59
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xbad98f3d
mov ecx, 0x5dfd7805
mov edx, 0xc4a1572b
cmovl ecx, edx
jmp 0x1004f720
mov eax, dword [esp + 0xe0]
movsx eax, byte [eax]
push dword [esp + 0xd4]
push eax
push dword [esp + 0xe0]
call fcn.10054ec0
add esp, 0xc
mov ecx, dword [esp + 0x104]
mov edx, eax
and edx, 0x4a3cab4c
add edx, edx
lea esi, [eax + eax]
sub esi, edx
mov edx, eax
xor edx, 0xb5c354b3
lea edi, [esi + edx]
add esi, edx
add esi, 0x94795699
lea edx, [ecx - 1]
and edx, esi
lea ebx, [edx + edi]
add ebx, 0x94795699
mov edx, 0x6b86a966
sub edx, edi
mov edi, ecx
neg edi
and edx, edi
add edx, ebx
xor edi, esi
add edi, ecx
sub edx, edi
imul ecx, edx, 0x14863e89
lea esi, [ecx - 0x5bc13ac]
and esi, 0xd50d1095
lea ecx, [ecx + esi*2]
add ecx, 0xfa43ec54
imul edx, edx, 0xd6f382ee
add edx, 0xb782756
and edx, 0xaa1a212a
add edx, ecx
mov ecx, 0x550d1095
sub ecx, edx
imul edx, ecx, 0x71a038d5
imul esi, ecx, 0xf66ad08e
mov ecx, esi
not ecx
and ecx, 0x6f3248f8
add ecx, edx
or esi, 0x6f3248f8
sub ecx, esi
lea edx, [ecx - 0x4c640329]
mov esi, edx
xor esi, 0x3799247c
xor edx, 0xc866db83
test eax, eax
lea eax, [ecx + esi - 0x4c640329]
lea eax, [edx + eax + 0x3799247d]
mov dword [esp + 0x9c], eax
mov eax, 0x725e2244
mov ecx, 0xab5f2bb8
jmp 0x10052326
mov ecx, dword [esp]
cmp ecx, 0x9aeeb4ed
mov ecx, 0x1c15d86f
mov edx, 0xfba6039
cmove ecx, edx
jmp 0x1004f720
movsx edx, byte [esp + 0xd]
mov ecx, ebp
call fcn.10052470
jmp 0x100523e2
cmp dword [esp + 0xc4], 0
mov eax, 0x193a7ae6
mov ecx, 0x10add617
cmove eax, ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xa8], ecx
mov ecx, 0x30447e7a
mov edx, dword [esp + 0x100]
mov dword [esp + 0xa4], edx
movzx edx, byte [esp + 0x11]
mov byte [esp + 0x15], dl
mov dh, byte [esp + 0x10]
mov byte [esp + 0x14], dh
movzx ebx, byte [esp + 0xf]
mov byte [esp + 0x13], bl
mov byte [esp + 7], dl
mov byte [esp + 6], dh
mov byte [esp + 5], bl
mov edx, dword [esp + 0x98]
mov dword [esp + 0xa0], edx
mov dword [esp + 0x6c], edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xae33fc22
mov ecx, 0x72293c3e
mov edx, 0x1b61c533
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xccff119a
mov ecx, 0x1c15d86f
mov edx, 0xcba7da24
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x69e8ca55
mov ecx, 0x1c15d86f
mov edx, 0xad2a7c0e
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xebeb4276
mov ecx, 0x1c15d86f
mov edx, 0xcce6a326
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xc7d9b833
mov ecx, 0x1c15d86f
mov edx, 0x319461db
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x54378ce
mov ecx, 0x675c6546
mov edx, 0xe7dff328
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x725cf6af
mov ecx, 0x75646047
mov edx, 0x553ed2dc
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x52c3a24b
mov ecx, 0x486c57ff
mov edx, 0x1083c885
cmovl ecx, edx
jmp 0x1004f720
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xfc], eax
lea eax, [esp + 0x11d]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x11e]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x11a]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x11f]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x11b]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x114]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x78], ebp
mov eax, dword [esp + 0x48]
movzx eax, byte [eax]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0xb4]
movzx eax, byte [eax]
mov byte [esp + 0x14], al
mov eax, dword [esp + 0xbc]
movzx eax, byte [eax]
mov byte [esp + 0x15], al
mov ecx, 0x30447e7a
mov dword [esp + 0xa4], 0
mov eax, 0x193a7ae6
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa0], 0
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xe4267047
mov ecx, 0x1c15d86f
mov edx, 0x982fbc8f
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xbad98f3d
mov ecx, 0x1c15d86f
mov edx, 0x2911434c
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x9fce5242
mov ecx, 0x4c953996
mov edx, 0x51cc7da7
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xabc97a1
mov ecx, 0x1c15d86f
mov edx, 0x50514977
cmove ecx, edx
jmp 0x1004f720
mov ecx, 0x5ec4baf5
jmp 0x1004f720
cmp dword [esp + 0x5c], 0
mov eax, 0xe4267047
mov ecx, 0xccff119a
cmovg eax, ecx
mov ecx, 0x30447e7a
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x193a7ae6
mov ecx, 0xa4f45fb1
mov edx, 0x4da622aa
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xabc97a1
mov ecx, 0xbfaadbc7
mov edx, 0xd58531e4
cmovl ecx, edx
jmp 0x1004f720
mov dword [esp + 0x9c], 0xffffffff
mov eax, 0x725e2244
mov ecx, 0x30447e7a
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x10add617
mov ecx, 0xfdf0a82d
mov edx, 0xfe91e7db
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x38626390
mov ecx, 0x9627b4c0
mov edx, 0xca5b6678
cmovl ecx, edx
jmp 0x1004f720
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0xd0]
mov eax, 0xae33fc22
mov ecx, 0x5e61bb9b
jmp 0x1004f716
mov ecx, dword [esp]
cmp ecx, 0x4d270b45
mov ecx, 0x1c15d86f
mov edx, 0xf24ed34c
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x54378ce
mov ecx, 0x1c15d86f
mov edx, 0xd30b733
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xa2393f13
mov ecx, 0xf89be127
mov edx, 0xbf093443
cmovl ecx, edx
jmp 0x1004f720
lea eax, [esp + 0x118]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xe8], eax
mov dword [esp + 0x10c], ebp
mov dword [esp + 0xac], 0
mov eax, 0x9fce5242
movzx ecx, byte [esp + 0x16]
mov byte [esp + 0x12], cl
mov ecx, 0x30447e7a
jmp 0x1004f720
mov eax, dword [esp + 0x94]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xdc]
lea ecx, [esp + 0x11c]
add eax, ecx
mov dword [esp + 0xe0], eax
cmp byte [esp + 0x23], 0
mov eax, 0x69e8ca55
mov ecx, 0xab5f2bb8
cmovne eax, ecx
mov ecx, 0x30447e7a
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x7e261a7b
mov ecx, 0x1c15d86f
mov edx, 0x904769b
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x5e61bb9b
mov ecx, 0x87f5f048
mov edx, 0x141bdb7b
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x4d270b45
mov ecx, 0xf8b69d87
mov edx, 0x14b94fa7
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xff4925dc
mov ecx, 0x1c15d86f
mov edx, 0x31d9d9cc
cmove ecx, edx
jmp 0x1004f720
mov dword [esp], eax
mov ecx, 0xbe33442c
jmp 0x1004f720
mov eax, dword [esp + 0x38]
movzx eax, byte [esp + 0xd]
mov byte [esp + 0x11], al
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x10], al
mov ecx, 0x30447e7a
mov dword [esp + 0x98], 0
mov eax, 0xf3125ece
movzx edx, byte [esp + 0xb]
mov byte [esp + 0xf], dl
jmp 0x1004f720
mov esi, dword [esp + 0x60]
lea eax, [esi - 0x2eea9db5]
mov edi, eax
or edi, 0xd115624a
lea edx, [esi + esi]
mov ecx, edx
sub ecx, esi
mov ebx, esi
sub ebx, edi
and eax, 0x2eea9db5
add eax, ebx
add eax, 0xd115624a
mov edi, ecx
and edi, 1
mov ebx, ecx
xor ebx, 1
sub ebx, edi
lea edi, [ecx + ecx]
or edi, 0xfffffffc
add edi, ebx
xor ecx, 0xfffffffe
lea ebx, [edi + ecx]
add ecx, edi
add ecx, 2
not ecx
lea edi, [ecx + ebx*2]
add edi, 4
lea ecx, [ecx + ebx*2]
add ecx, 7
xor ecx, eax
add edi, ecx
sub eax, edi
mov edi, esi
xor edi, 0xfffffffe
sub edi, esi
not esi
or esi, 0xfffffffe
add esi, edi
mov edi, edx
xor edi, 2
add edi, esi
or edx, 0xfffffffc
add edx, edi
add edx, 4
mov esi, edx
and esi, 0x444bc03f
mov edi, edx
xor edi, 0xbbb43fc0
add edi, esi
not edx
add edi, edx
lea esi, [edx + edx]
or esi, 0x8897807e
sub edi, esi
lea esi, [eax + ecx]
add edi, 0x444bc03f
and edx, 0xbbb43fc0
or edx, edi
mov edi, edx
and edi, 0x3bb43fc0
add edi, edi
sub edi, edx
add edi, 0x444bc040
add eax, ecx
add eax, 0xd3cdab99
and eax, edi
add eax, esi
add eax, 0xd3cdab99
mov ecx, 0x2c325466
sub ecx, esi
and ecx, edi
add ecx, eax
imul eax, ecx, 0x9fef1b5b
lea ecx, [eax + 0x4a377031]
mov edx, ecx
and edx, 0x2816b04
add edx, edx
add eax, eax
add eax, 0x946ee062
sub eax, edx
xor ecx, 0xfd7e94fb
add ecx, eax
imul eax, ecx, 0x8c939cd3
lea ecx, [eax - 0x7df6cc8a]
and ecx, 0xdd6af228
add ecx, eax
add ecx, 0x82093376
mov edx, 0x7df6cc89
sub edx, eax
or edx, 0x22950dd7
lea eax, [ecx + edx]
add ecx, edx
add ecx, 0xdd6af22a
mov edx, ecx
and edx, 0x9bb80da9
add eax, edx
add eax, 0xdd6af22a
mov edi, ecx
xor edi, 0x9bb80da9
add edi, eax
or ecx, 0x9bb80da9
sub edi, ecx
mov eax, dword [esp + 0x60]
movzx ecx, byte [esp + 4]
mov byte [esp + eax + 0x11c], cl
mov ecx, dword [esp + 0xc0]
mov eax, ecx
or eax, 0x10a37b01
mov edx, ecx
and edx, 0x10a37b01
add ecx, ecx
mov esi, ecx
and esi, 0xdeb909fc
add esi, edx
mov edx, ecx
xor edx, 0xdeb909fc
add edx, esi
or ecx, 0xdeb909fc
sub edx, ecx
and edx, eax
not eax
add eax, edx
xor eax, 0xef5c84fe
lea ecx, [eax + 1]
and ecx, 0x25a1ce46
mov edx, 0x3ffffffe
sub edx, eax
and edx, 0x25a1ce46
add edx, ecx
add eax, edx
add eax, 1
imul eax, eax, 0x82137449
lea ecx, [eax + 0x1832760a]
mov edx, ecx
and edx, 0x5021b172
lea edx, [edx + edx*2]
neg edx
add edx, eax
add edx, 0x1832760a
lea esi, [eax + eax]
add esi, 0x3064ec14
xor esi, 0x5fbc9d1a
add esi, edx
or ecx, 0x5021b172
add ecx, esi
add ecx, eax
imul eax, ecx, 0x386abdf9
lea ecx, [eax - 0x65c08b43]
mov edx, ecx
and edx, 0x72ee59ad
add edx, edx
add eax, eax
add eax, 0x347ee97a
sub eax, edx
xor ecx, 0x8d11a652
lea edx, [eax + ecx]
add eax, ecx
add eax, 0xe5dcb35b
mov ecx, eax
and ecx, 0x7800a123
add ecx, edx
add ecx, 0xe5dcb35b
mov esi, 0x1a234ca4
sub esi, edx
add edi, 0xbe4d1b80
and esi, 0x87ff5edc
add esi, ecx
xor eax, 0x7800a123
add eax, esi
add eax, 0x7800a125
mov dword [esp + 0x100], eax
mov dword [esp + 0x98], edi
cmp edi, 4
mov eax, 0xf3125ece
mov ecx, 0x8f8ec577
cmove eax, ecx
movzx ecx, byte [esp + 0xa]
mov byte [esp + 0x11], cl
movzx ecx, byte [esp + 9]
mov byte [esp + 0x10], cl
mov ecx, 0x30447e7a
movzx edx, byte [esp + 8]
mov byte [esp + 0xf], dl
jmp 0x1004f720
mov eax, 0x10164bbc
mov ecx, dword [0x10164bcc]
mov dword [esp + 0x54], ecx
cmp dword [0x10164bd0], 0x10
jb 0x10052142
mov eax, dword [0x10164bbc]
mov dword [esp + 0x58], eax
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x64], eax
mov eax, 0x4d270b45
mov ecx, 0xfda94cda
jmp 0x10052326
mov ecx, dword [esp]
cmp ecx, 0xa2393f13
mov ecx, 0x1c15d86f
mov edx, 0x23ffd36d
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0xccff119a
mov ecx, 0x527f1c3c
mov edx, 0x8faea594
cmovl ecx, edx
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x886e1712
mov ecx, 0x1c15d86f
mov edx, 0x3eb15c72
cmove ecx, edx
jmp 0x1004f720
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x9c]
mov byte [eax], cl
mov eax, dword [esp + 0xdc]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x86b3901a
add edx, ecx
mov ecx, eax
xor ecx, 0x86b3901a
add edx, ecx
add edx, 1
mov ecx, eax
and ecx, 0x794c6fe5
or ecx, edx
mov edx, ecx
xor edx, 0x794c6fe5
xor ecx, 0x6b3901a
add ecx, ecx
or ecx, 2
add ecx, edx
and ecx, edx
lea edx, [eax + ecx]
mov edi, 0xa3f5f832
sub edi, edx
sub edi, edx
add ecx, eax
add ecx, 0x2e0503e6
mov esi, ecx
or esi, 1
or ecx, 0xfffffffe
sub esi, ecx
lea ecx, [esi + edx*2]
or edi, 2
lea edx, [ecx + edi]
add ecx, edi
add ecx, 0x5c0a07cc
mov esi, ecx
and esi, 0xd1fafc19
add edx, esi
add edx, 0x5c0a07cc
mov esi, ecx
xor esi, 0xd1fafc19
add esi, edx
or ecx, 0xd1fafc19
sub esi, ecx
lea ecx, [esi - 0x2e0503e6]
and ecx, 0x1ca81ee3
mov edx, ecx
xor edx, 0x1ca81ee3
add esi, edx
add esi, 0xd1fafc1a
lea edx, [esi + ecx]
and eax, 1
mov edi, eax
not edi
and edi, 0xdd5d8037
lea eax, [eax + edi*2]
add eax, 0x22a27fc9
xor eax, 0xdd5d8037
lea edi, [eax + 1]
add ecx, esi
add ecx, 0xd4abbc7c
mov esi, 0xfffffffe
sub esi, eax
and esi, ecx
add edx, esi
add edx, 0xd4abbc7c
lea eax, [edx + eax*2]
add eax, 2
or edi, ecx
sub eax, edi
mov ecx, eax
and ecx, 0xf153db60
add ecx, eax
mov edx, eax
not edx
add edx, ecx
and eax, 0xeac249f
add eax, edx
imul eax, eax, 0xc841b343
lea ecx, [eax - 0x7eb68a20]
and ecx, 0xf239f3ac
mov edx, ecx
xor edx, 0xf239f3ac
add eax, edx
add eax, 0x814975e0
add eax, ecx
neg eax
imul eax, eax, 0xbe670e95
mov ecx, eax
xor ecx, 0x26bdc4e4
mov edx, eax
xor edx, 0xd9423b1b
add edx, ecx
add eax, edx
add eax, 0xd9423b1d
mov dword [esp + 0x94], eax
cmp eax, dword [esp + 0x5c]
mov eax, 0x9bcacafd
mov ecx, 0xe4267047
cmove eax, ecx
mov ecx, 0x30447e7a
jmp 0x1004f720
mov ecx, dword [esp]
cmp ecx, 0x725cf6af
mov ecx, 0x1c15d86f
mov edx, 0x39449bfb
cmove ecx, edx
jmp 0x1004f720
mov ecx, dword [ecx]
mov edx, dword [esp + 0x7c]
movzx ebx, byte [esp + 0xb]
mov byte [ecx + edx], bl
neg eax
mov byte [ecx + eax + 0x3ca1891b], 0
mov ecx, 0x30447e7a
mov eax, 0x52c3a24b
mov ebp, dword [esp + 0x68]
jmp 0x1004f720
mov ecx, dword [ecx]
mov edx, dword [esp + 0x88]
movzx ebx, byte [esp + 0x17]
mov byte [ecx + edx], bl
mov byte [ecx + eax - 0x58883002], 0
mov ecx, 0x30447e7a
mov eax, 0xf79ba356
mov ebp, dword [esp + 0x68]
jmp 0x1004f720
mov ecx, dword [ecx]
mov edx, dword [esp + 0x80]
movzx ebx, byte [esp + 0xc]
mov byte [ecx + edx], bl
mov byte [ecx + eax], 0
mov ecx, 0x30447e7a
mov eax, 0x9aeeb4ed
jmp 0x1004f720
mov ecx, dword [ecx]
mov edx, dword [esp + 0x84]
movzx ebx, byte [esp + 0xd]
mov byte [ecx + edx], bl
mov byte [ecx + eax + 0x2190fa01], 0
mov ecx, 0x30447e7a
mov eax, 0xafb58d1c
jmp 0x1004f720
mov eax, dword [eax]
mov ecx, dword [esp + 0xc0]
movzx eax, byte [eax + ecx]
mov byte [esp + 4], al
movzx eax, byte [esp + 4]
cmp al, 0x3d
mov eax, 0x7e261a7b
mov ecx, 0x10add617
cmove eax, ecx
movzx ecx, byte [esp + 0xa]
mov byte [esp + 7], cl
movzx ecx, byte [esp + 9]
mov byte [esp + 6], cl
movzx ecx, byte [esp + 8]
mov byte [esp + 5], cl
mov ecx, 0x30447e7a
mov edx, dword [esp + 0x60]
mov dword [esp + 0x6c], edx
jmp 0x1004f720
cmp ecx, 0x951fb003
jne 0x1004f720
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.1005440a
add esp, 0x124
pop esi
pop edi
pop ebx
pop ebp
ret