Function at 0x414390
Capabilities:
Authenticate hmac
Encode data using base64
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x7f0
mov esi, esp
mov ebx, dword [ebp + 8]
mov dword [esi + 0x2bc], 0x855dba1b
lea eax, [esi + 0x2bc]
mov dword [esi], eax
mov eax, dword [esi + 0x2bc]
mov ecx, eax
sub ecx, 0x804b7b46
je 0x41750f
jmp 0x4143cc
mov ecx, eax
sub ecx, 0x809e3b4c
je 0x416817
jmp 0x4143dc
mov ecx, eax
sub ecx, 0x81ece469
je 0x4165ca
jmp 0x4143ec
mov ecx, eax
sub ecx, 0x84f8404a
je 0x417684
jmp 0x4143fc
mov ecx, eax
sub ecx, 0x855dba1b
je 0x415131
jmp 0x41440c
mov ecx, eax
sub ecx, 0x87e4320b
je 0x415594
jmp 0x41441c
mov ecx, eax
sub ecx, 0x8925e78a
je 0x41644d
jmp 0x41442c
mov ecx, eax
sub ecx, 0x8a3898dc
je 0x41631c
jmp 0x41443c
mov ecx, eax
sub ecx, 0x8c3b017c
je 0x4171f4
jmp 0x41444c
mov ecx, eax
sub ecx, 0x8cde1bb4
je 0x41683d
jmp 0x41445c
mov ecx, eax
sub ecx, 0x907085f9
je 0x417554
jmp 0x41446c
mov ecx, eax
sub ecx, 0x921064d3
je 0x41609c
jmp 0x41447c
mov ecx, eax
sub ecx, 0x92264eef
je 0x4162dd
jmp 0x41448c
mov ecx, eax
sub ecx, 0x92636d8b
je 0x4160c1
jmp 0x41449c
mov ecx, eax
sub ecx, 0x92dd4b60
je 0x416c45
jmp 0x4144ac
mov ecx, eax
sub ecx, 0x934cbdcb
je 0x415870
jmp 0x4144bc
mov ecx, eax
sub ecx, 0x9428a373
je 0x4175b5
jmp 0x4144cc
mov ecx, eax
sub ecx, 0x956478c8
je 0x4161a3
jmp 0x4144dc
mov ecx, eax
sub ecx, 0x959d2621
je 0x417e1b
jmp 0x4144ec
mov ecx, eax
sub ecx, 0x9897b025
mov ebx, dword [ebp + 8]
je 0x41809e
jmp 0x4144ff
mov ecx, eax
sub ecx, 0x9a33efea
je 0x4188e4
jmp 0x41450f
mov ecx, eax
sub ecx, 0x9ad277a1
je 0x415ce1
jmp 0x41451f
mov ecx, eax
sub ecx, 0x9bfb95b2
je 0x416ac9
jmp 0x41452f
mov ecx, eax
sub ecx, 0x9c1f860e
je 0x418cb2
jmp 0x41453f
mov ecx, eax
sub ecx, 0x9cdbefc2
je 0x41801c
jmp 0x41454f
mov ecx, eax
sub ecx, 0x9d117f07
je 0x41758c
jmp 0x41455f
mov ecx, eax
sub ecx, 0x9dc2cb8d
je 0x417502
jmp 0x41456f
mov ecx, eax
sub ecx, 0x9f01dec7
je 0x417e98
jmp 0x41457f
mov ecx, eax
sub ecx, 0x9f299966
je 0x417487
jmp 0x41458f
mov ecx, eax
sub ecx, 0xa1d7a72a
je 0x41822d
jmp 0x41459f
mov ecx, eax
sub ecx, 0xa2568b90
je 0x4153c2
jmp 0x4145af
mov ecx, eax
sub ecx, 0xa2dc50aa
je 0x4164fc
jmp 0x4145bf
mov ecx, eax
sub ecx, 0xa3d7fd32
je 0x4155ae
jmp 0x4145cf
mov ecx, eax
sub ecx, 0xa3f9e9de
je 0x416aa4
jmp 0x4145df
mov ecx, eax
sub ecx, 0xa406e6e6
je 0x418109
jmp 0x4145ef
mov ecx, eax
sub ecx, 0xa4989e7b
je 0x415af0
jmp 0x4145ff
mov ecx, eax
sub ecx, 0xa4ab819e
je 0x415afd
jmp 0x41460f
mov ecx, eax
sub ecx, 0xa8424fd6
je 0x415d26
jmp 0x41461f
mov ecx, eax
sub ecx, 0xaa5d7519
je 0x417a8a
jmp 0x41462f
mov ecx, eax
sub ecx, 0xaab81d3b
je 0x415525
jmp 0x41463f
mov ecx, eax
sub ecx, 0xac75eaff
je 0x416cc5
jmp 0x41464f
mov ecx, eax
sub ecx, 0xad403ea0
je 0x416df1
jmp 0x41465f
mov ecx, eax
sub ecx, 0xae2cb638
je 0x416a97
jmp 0x41466f
mov ecx, eax
sub ecx, 0xae3f667b
je 0x417eb1
jmp 0x41467f
mov ecx, eax
sub ecx, 0xaec181cd
je 0x4171e7
jmp 0x41468f
mov ecx, eax
sub ecx, 0xaeeb3d6f
je 0x4171b1
jmp 0x41469f
mov ecx, eax
sub ecx, 0xb0ab1af4
je 0x416303
jmp 0x4146af
mov ecx, eax
sub ecx, 0xb0fbc1b4
je 0x415c78
jmp 0x4146bf
mov ecx, eax
sub ecx, 0xb1fabb4f
je 0x4167ae
jmp 0x4146cf
mov ecx, eax
sub ecx, 0xb25def31
je 0x415e35
jmp 0x4146df
mov ecx, eax
sub ecx, 0xb302d72d
je 0x416d51
jmp 0x4146ef
mov ecx, eax
sub ecx, 0xb3915326
je 0x417197
jmp 0x4146ff
mov ecx, eax
sub ecx, 0xb3d2b5a5
je 0x4152f4
jmp 0x41470f
mov ecx, eax
sub ecx, 0xb410f084
je 0x4154a4
jmp 0x41471f
mov ecx, eax
sub ecx, 0xb5b85b3b
je 0x415d49
jmp 0x41472f
mov ecx, eax
sub ecx, 0xb6884ba4
je 0x416e33
jmp 0x41473f
mov ecx, eax
sub ecx, 0xb701b946
je 0x41766b
jmp 0x41474f
mov ecx, eax
sub ecx, 0xb79f68af
je 0x4169de
jmp 0x41475f
mov ecx, eax
sub ecx, 0xb8275492
je 0x4161b3
jmp 0x41476f
mov ecx, eax
sub ecx, 0xb92bebcc
je 0x417691
jmp 0x41477f
mov ecx, eax
sub ecx, 0xbabeee91
je 0x417db4
jmp 0x41478f
mov ecx, eax
sub ecx, 0xbcdf109d
je 0x417fd9
jmp 0x41479f
mov ecx, eax
sub ecx, 0xbcec79a5
je 0x416c7c
jmp 0x4147af
mov ecx, eax
sub ecx, 0xbd3048a6
je 0x41684a
jmp 0x4147bf
mov ecx, eax
sub ecx, 0xbd8f9708
je 0x416529
push eax
push eax
mov eax, esp
mov dword [esi + 0x260], eax
push eax
mov eax, esp
mov dword [esi + 0x37c], eax
sub esp, 0x40
mov eax, esp
mov dword [esi + 0xcc], eax
sub esp, 0x60
mov eax, esp
mov dword [esi + 0x68], eax
sub esp, 0x14
mov eax, esp
mov dword [esi + 0x264], eax
push eax
mov eax, esp
mov dword [esi + 0x380], eax
push eax
mov eax, esp
mov dword [esi + 0x6c], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x268], eax
push eax
mov eax, esp
mov dword [esi + 0x384], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0xd0], eax
push eax
mov eax, esp
mov dword [esi + 0x388], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0x44], eax
push eax
mov eax, esp
mov dword [esi + 0x26c], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0xd4], eax
push eax
mov eax, esp
mov dword [esi + 0x38c], eax
push eax
mov eax, esp
mov dword [esi + 0x70], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x4c], eax
push eax
mov eax, esp
mov dword [esi + 0x270], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x74], eax
push eax
mov eax, esp
mov dword [esi + 0x274], eax
sub esp, 0x14
mov eax, esp
mov dword [esi + 0x78], eax
push eax
mov eax, esp
mov dword [esi + 0x278], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x27c], eax
push eax
mov eax, esp
mov dword [esi + 0x390], eax
sub esp, 0x3c
mov eax, esp
mov dword [esi + 0xd8], eax
push eax
mov eax, esp
mov dword [esi + 0x394], eax
sub esp, 0x38
mov eax, esp
mov dword [esi + 0x7c], eax
push eax
mov eax, esp
mov dword [esi + 0x280], eax
sub esp, 0x44
mov eax, esp
mov dword [esi + 0x24], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0x50], eax
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x284], eax
push eax
sub esp, 0x40
mov eax, esp
mov dword [esi + 0x28], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0x2c], eax
sub esp, 4
mov dword [esp], ebx
call fcn.004019c0
add esp, 4
mov dword [esi + 0x80], eax
mov eax, 0x45818506
cmp dword [esi + 0x80], 0
je 0x415288
mov eax, 0xdcb6f5d3
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xae3f667b
mov byte [esi + 0x18], 1
jmp 0x418ce1
mov eax, 0x76975ea3
test byte [esi + 0x38], 1
jne 0x4153d2
mov eax, 0x43fdee83
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov al, byte [esi + 0x30]
mov byte [esi + 0x180], al
mov byte [esi + 0x5c], 5
mov byte [esi + 0x5d], 0xe1
mov eax, 2
mov byte [esi + eax + 0x5c], 0
add eax, 1
cmp eax, 5
jne 0x4154ba
xor eax, eax
cmp eax, 5
jae 0x4154e5
mov cl, byte [esi + eax + 0x5c]
mov dl, al
add dl, 0x28
xor dl, cl
add dl, 0x38
mov byte [esi + eax + 0x5c], dl
add eax, 1
jmp 0x4154c9
mov eax, dword [esi + 8]
lea ecx, [esi + 0x5c]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401b30
add esp, 0xc
mov dword [esi + 0x398], eax
mov eax, dword [esi]
mov dword [eax], 0x24687631
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xe27340f1
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xc766f587
jmp 0x418ce1
mov al, byte [esi + 0x108]
mov byte [esi + 0x184], al
mov byte [esi + 0x2d0], 0xcb
mov byte [esi + 0x2d1], 0x7f
mov eax, 2
mov byte [esi + eax + 0x2d0], 0
add eax, 1
cmp eax, 7
jne 0x4155cd
xor eax, eax
cmp eax, 7
jae 0x415615
movzx edx, byte [esi + eax + 0x2d0]
mov ecx, eax
add ecx, 0x9ba9c215
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x97
mov byte [esi + eax + 0x2d0], cl
mov ecx, eax
shl ecx, 1
or ecx, 1
sub ecx, eax
mov eax, ecx
jmp 0x4155df
mov eax, dword [esi + 8]
lea ecx, [esi + 0x2d0]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018b0
add esp, 8
mov dword [esi + 0x36c], eax
mov al, byte [esi + 0x104]
mov byte [esi + 0x188], al
mov byte [esi + 0x20c], 0x7a
mov byte [esi + 0x20d], 0x8b
mov byte [esi + 0x20e], 0x1e
mov eax, 3
mov byte [esi + eax + 0x20c], 0
add eax, 1
cmp eax, 6
jne 0x41565c
xor eax, eax
cmp eax, 6
jae 0x41570c
movzx edi, byte [esi + eax + 0x20c]
mov ebx, eax
shl ebx, 1
and ebx, 0x815e6a0a
mov ecx, eax
xor ecx, 0x40af3505
add ecx, ebx
mov dword [esi + 0x2d8], edi
mov edx, edi
add edx, 1
xor edi, 0xffffffff
mov ebx, ecx
or ebx, edi
add ebx, edx
shl ebx, 1
mov edi, ecx
mov edx, dword [esi + 0x2d8]
and edi, edx
shl edi, 1
xor ecx, edx
mov edx, ecx
add edx, edi
mov edi, edx
xor edi, 0xffffffff
mov dword [esi + 0x21c], ebx
and dword [esi + 0x21c], edi
xor ebx, 0xffffffff
and edx, ebx
mov ebx, dword [ebp + 8]
sub edx, dword [esi + 0x21c]
and ecx, 1
or edx, 1
add edx, 0xe6
add edx, ecx
mov byte [esi + eax + 0x20c], dl
mov ecx, eax
and ecx, 1
or eax, 1
or ecx, 0xcefe4e34
add ecx, eax
add ecx, 0x3101b1cc
mov eax, ecx
jmp 0x41566e
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x20c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401910
add esp, 8
fnstcw word [esi + 0x66]
movzx eax, word [esi + 0x66]
or eax, 0xc00
mov word [esi + 0x20a], ax
fldcw word [esi + 0x20a]
fistp dword [esi + 0x378]
fldcw word [esi + 0x66]
mov eax, dword [esi + 0x378]
mov dword [esi + 0x10], eax
mov al, byte [esi + 0x100]
mov byte [esi + 0x18c], al
mov byte [esi + 0x2c8], 0x6d
mov byte [esi + 0x2c9], 0xc9
mov eax, 2
mov byte [esi + eax + 0x2c8], 0
add eax, 1
cmp eax, 7
jne 0x415771
xor eax, eax
cmp eax, 7
jae 0x4157ae
mov cl, byte [esi + eax + 0x2c8]
mov dl, al
add dl, 0xb2
xor dl, cl
add dl, 0x86
mov byte [esi + eax + 0x2c8], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x415783
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x2c8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401910
add esp, 8
fnstcw word [esi + 0x64]
movzx eax, word [esi + 0x64]
or eax, 0xc00
mov word [esi + 0x208], ax
fldcw word [esi + 0x208]
fistp dword [esi + 0x374]
fldcw word [esi + 0x64]
mov eax, dword [esi + 0x374]
mov dword [esi + 0x288], eax
lea eax, [esi + 0x3e8]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esi + 0x36c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ac20
add esp, 0x10
lea eax, [esi + 0x3e8]
lea ecx, [esi + 4]
lea edx, [esi + 0xfc]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040b380
add esp, 0xc
mov ecx, 0xfe6bde91
test al, 1
jne 0x41585a
mov ecx, 0xebc5f18a
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xe3ec43c6
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xa4ab819e
jmp 0x418ce1
mov eax, dword [esi + 0x1c]
sub esp, 4
mov dword [esp], eax
call fcn.004083c0
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xdfa86eb1
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xeb4d7580
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x797ed92e
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xb5b85b3b
mov eax, dword [esi + 0xe4]
mov dword [esi + 0x228], 0
mov dword [esi + 0x224], eax
jmp 0x418ce1
mov eax, dword [esi + 0x224]
mov ecx, dword [esi + 0x228]
mov dword [esi + 0x3a0], eax
mov dword [esi + 0x3a4], ecx
mov eax, dword [esi]
mov dword [eax], 0x733fb955
mov eax, dword [esi + 0x3a4]
mov ecx, dword [esi + 0x3a0]
mov dword [esi + 0x230], eax
mov dword [esi + 0x22c], ecx
jmp 0x418ce1
mov eax, dword [esi + 0x234]
mov ecx, dword [esi + 0x238]
mov dword [esi + 0x294], eax
mov dword [esi + 0x88], ecx
mov ecx, dword [esi + 0x294]
mov eax, 0x694f563
cmp ecx, dword [esi + 0x3a8]
jb 0x415e65
mov eax, 0x225a5bac
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xb25def31
mov eax, dword [esi + 0x3b0]
mov ecx, dword [esi + 0x3ac]
mov dword [esi + 0x238], ecx
mov dword [esi + 0x234], eax
jmp 0x418ce1
mov eax, dword [esi + 4]
sub esp, 4
mov dword [esp], eax
call fcn.0043b010
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xbd8f9708
mov dword [esi + 0xa8], 4
mov dword [esi + 0xa4], 0
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xb8275492
mov ebx, dword [ebp + 8]
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xca98c97e
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xeb319398
jmp 0x418ce1
mov eax, 0x8a3898dc
test byte [esi + 0x3a], 1
jne 0x416313
mov eax, 0x6f41f427
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov eax, dword [esi + 0x44]
mov eax, dword [esi]
mov dword [eax], 0x28755e7
jmp 0x418ce1
mov eax, dword [esi + 0xd4]
mov ecx, dword [esi + 0x38c]
mov eax, dword [esi + 0xd4]
mov cl, byte [ecx]
mov byte [esi + 0x1ac], cl
mov byte [eax], 0xde
mov byte [eax + 1], 0xe1
mov byte [eax + 2], 0x12
mov byte [eax + 3], 0xe3
mov byte [eax + 4], 0x17
mov byte [eax + 5], 0xe5
mov byte [eax + 6], 0xd7
mov byte [eax + 7], 0xe7
mov byte [eax + 8], 0xf8
mov byte [eax + 9], 0xf9
mov ecx, 0xa
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 0xe
jne 0x416493
mov eax, dword [esi + 0xd4]
xor ecx, ecx
cmp ecx, 0xe
jae 0x4164ca
mov bl, byte [eax + ecx]
mov edi, ecx
shl edi, 1
and edi, 0x50
mov edx, ecx
xor edx, 0x28
add edx, edi
xor dl, bl
add dl, 0x38
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x4164a7
mov ecx, dword [esi + 0x20]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004190d0
add esp, 8
mov eax, dword [esi]
mov dword [eax], 0x4cd2a221
mov ebx, dword [ebp + 8]
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x78044acb
jmp 0x418ce1
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0xb0]
mov dword [esi + 0xc], eax
mov eax, 0x7478752a
cmp ecx, 0
je 0x4165e8
mov eax, 0x57419656
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov edi, dword [esi + 0x240]
mov eax, dword [esi + 4]
sub esp, 4
mov dword [esp], eax
call fcn.0043b010
add esp, 4
mov dword [esi + 4], 0
mov eax, 0x809e3b4c
cmp edi, 0
jge 0x4167db
mov eax, 0x4489dfc2
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
cmp dword [esi + 0x10], 1
sete al
and al, 1
mov byte [esi + 0x3b], al
mov eax, dword [esi]
mov dword [eax], 0xcf442f04
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xbd3048a6
jmp 0x418ce1
mov eax, 0xbfce330
test byte [esi + 0x3b], 1
jne 0x41685a
mov eax, 0x6d444f0e
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov eax, dword [esi + 0x54]
sub esp, 4
mov dword [esp], eax
call fcn.004084c0
add esp, 4
mov ecx, eax
and ecx, 1
or eax, 1
add ecx, eax
mov dword [esi + 0x3bc], ecx
mov eax, dword [esi]
mov dword [eax], 0x6a9b6bec
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xa3f9e9de
jmp 0x418ce1
mov eax, dword [esi + 0x3c0]
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov dword [esi + 0x3c4], eax
mov eax, dword [esi]
mov dword [eax], 0x9bfb95b2
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x88393c6
mov eax, dword [esi + 0x3c4]
mov dword [esi + 0x248], eax
jmp 0x418ce1
mov eax, 0xbcec79a5
test byte [esi + 0x3c], 1
jne 0x416c55
mov eax, 0x136fdad8
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x58ef375e
jmp 0x418ce1
mov edi, dword [esi + 0x58]
add edi, 2
mov eax, dword [esi + 0x58]
mov word [eax], 0x2c
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x54]
xor edx, edx
sub esp, 0x10
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040ac20
add esp, 0x10
shl eax, 1
add edi, eax
mov dword [esi + 0x3c8], edi
mov eax, dword [esi]
mov dword [eax], 0x42fe130c
jmp 0x418ce1
mov eax, dword [esi + 0x2b0]
add eax, 2
mov ecx, dword [esi + 0x2b0]
mov word [ecx], 0x2c
mov ecx, dword [esi + 0xe8]
mov edx, dword [esi + 0x8c]
xor edi, edi
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040ac20
add esp, 0x10
mov eax, dword [esi]
mov dword [eax], 0xf181f377
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x747fe4a9
jmp 0x418ce1
mov eax, dword [esi + 0xc]
sub esp, 4
mov dword [esp], eax
call fcn.00419120
add esp, 4
add eax, 0x1d
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x416e60
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083b0
add esp, 4
mov dword [esi + 0x2b4], eax
mov ecx, dword [esi + 0x390]
mov eax, dword [esi + 0x27c]
mov cl, byte [ecx]
mov byte [esi + 0x1c8], cl
mov byte [eax], 0x32
mov byte [eax + 1], 0x11
mov byte [eax + 2], 0x12
mov byte [eax + 3], 0x13
mov ecx, 4
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x416e9c
mov edi, dword [esi + 0x27c]
xor eax, eax
cmp eax, 6
jae 0x416ee7
mov dl, byte [edi + eax]
mov ebx, eax
xor ebx, 0x3c
mov ecx, eax
shl ecx, 1
and ecx, 0x86
sub ecx, ebx
xor cl, dl
add cl, 0x2c
mov byte [edi + eax], cl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 1
xor edx, 0xffffffff
add eax, 2
add eax, edx
add eax, ecx
jmp 0x416eb0
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0x394]
mov eax, dword [esi + 0xd8]
mov cl, byte [ecx]
mov byte [esi + 0x1cc], cl
mov byte [eax], 0xf4
mov byte [eax + 1], 0x67
mov byte [eax + 2], 0xf7
mov byte [eax + 3], 0x61
mov byte [eax + 4], 0xe9
mov byte [eax + 5], 0x63
mov byte [eax + 6], 0xfd
mov byte [eax + 7], 0x5d
mov byte [eax + 8], 0xce
mov byte [eax + 9], 0x5f
mov byte [eax + 0xa], 0xd3
mov byte [eax + 0xb], 0x59
mov byte [eax + 0xc], 0xc0
mov byte [eax + 0xd], 0x5b
mov byte [eax + 0xe], 0xc5
mov byte [eax + 0xf], 0x55
mov byte [eax + 0x10], 0xc0
mov byte [eax + 0x11], 0x57
mov byte [eax + 0x12], 0xc2
mov byte [eax + 0x13], 0x51
mov byte [eax + 0x14], 0xb0
mov byte [eax + 0x15], 0x53
mov byte [eax + 0x16], 0x85
mov byte [eax + 0x17], 0x4d
mov byte [eax + 0x18], 0xd3
mov byte [eax + 0x19], 0x4f
mov byte [eax + 0x1a], 0xc6
mov byte [eax + 0x1b], 0x49
mov byte [eax + 0x1c], 0xd7
mov byte [eax + 0x1d], 0x4b
mov byte [eax + 0x1e], 0xd7
mov byte [eax + 0x1f], 0x45
mov byte [eax + 0x20], 0xa4
mov byte [eax + 0x21], 0x47
mov byte [eax + 0x22], 0xe4
mov byte [eax + 0x23], 0x41
mov byte [eax + 0x24], 0xcb
mov byte [eax + 0x25], 0x43
mov byte [eax + 0x26], 0xd2
mov byte [eax + 0x27], 0x3d
mov byte [eax + 0x28], 0x9f
mov byte [eax + 0x29], 0x3f
mov byte [eax + 0x2a], 0xb3
mov byte [eax + 0x2b], 0x39
mov byte [eax + 0x2c], 0xb5
mov byte [eax + 0x2d], 0x3b
mov byte [eax + 0x2e], 0xda
mov byte [eax + 0x2f], 0x35
mov byte [eax + 0x30], 0xe3
mov byte [eax + 0x31], 0x37
mov byte [eax + 0x32], 0xa8
mov byte [eax + 0x33], 0x31
mov byte [eax + 0x34], 0xd0
mov byte [eax + 0x35], 0x33
mov byte [eax + 0x36], 0xd0
mov byte [eax + 0x37], 0x2d
mov byte [eax + 0x38], 0x2c
mov byte [eax + 0x39], 0x2f
mov ecx, 0x3a
mov ebx, dword [ebp + 8]
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 0x3c
jne 0x416ff0
mov eax, dword [esi + 0xd8]
xor ecx, ecx
cmp ecx, 0x3c
jae 0x41701e
mov dl, byte [eax + ecx]
mov dh, cl
add dh, 0x19
xor dh, dl
add dh, 0x83
mov byte [eax + ecx], dh
add ecx, 1
jmp 0x417004
mov ecx, dword [esi + 0x2b4]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409fb0
add esp, 8
mov ecx, dword [esi + 0xc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409fb0
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00409fb0
add esp, 8
mov eax, dword [esi]
mov dword [eax], 0x4663f301
mov eax, dword [esi + 0x2b4]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov dword [esi + 0xbc], edx
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xb4], eax
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x32ee4437
jmp 0x418ce1
mov eax, 0xaec181cd
test byte [esi + 0x40], 1
jne 0x4171c1
mov eax, 0xe9cf1e33
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc8], eax
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc0], 0
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x8c3b017c
jmp 0x418ce1
mov eax, dword [esi + 4]
sub esp, 4
mov dword [esp], eax
call fcn.00418cf0
add esp, 4
mov edi, eax
mov eax, edi
and eax, 1
or edi, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x417229
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083b0
add esp, 4
mov dword [esi + 0xec], eax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xec]
xor edx, edx
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ac20
add esp, 0x10
mov eax, dword [esi + 0xfc]
add eax, 0x18
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x417288
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083b0
add esp, 4
mov dword [esi + 0x2b8], eax
mov ecx, dword [esi + 0x280]
mov eax, dword [esi + 0x7c]
mov cl, byte [ecx]
mov byte [esi + 0x1d4], cl
mov byte [eax], 0x50
mov byte [eax + 1], 0xc1
mov byte [eax + 2], 0x6d
mov byte [eax + 3], 0xc3
mov byte [eax + 4], 0x53
mov byte [eax + 5], 0xc5
mov byte [eax + 6], 0x63
mov byte [eax + 7], 0xc7
mov byte [eax + 8], 0x5a
mov byte [eax + 9], 0xc9
mov byte [eax + 0xa], 0x59
mov byte [eax + 0xb], 0xcb
mov byte [eax + 0xc], 0x64
mov byte [eax + 0xd], 0xcd
mov byte [eax + 0xe], 0x6b
mov byte [eax + 0xf], 0xcf
mov byte [eax + 0x10], 0x1c
mov byte [eax + 0x11], 0xb1
mov byte [eax + 0x12], 0x1e
mov byte [eax + 0x13], 0xb3
mov byte [eax + 0x14], 0x54
mov byte [eax + 0x15], 0xb5
mov byte [eax + 0x16], 0x5b
mov byte [eax + 0x17], 0xb7
mov byte [eax + 0x18], 0x1d
mov byte [eax + 0x19], 0xb9
mov byte [eax + 0x1a], 0x22
mov byte [eax + 0x1b], 0xbb
mov byte [eax + 0x1c], 0x19
mov byte [eax + 0x1d], 0xbd
mov byte [eax + 0x1e], 0x1d
mov byte [eax + 0x1f], 0xbf
mov byte [eax + 0x20], 0x40
mov byte [eax + 0x21], 0xa1
mov byte [eax + 0x22], 0
mov byte [eax + 0x23], 0xa3
mov byte [eax + 0x24], 0x3d
mov byte [eax + 0x25], 0xa5
mov byte [eax + 0x26], 0x36
mov byte [eax + 0x27], 0xa7
mov byte [eax + 0x28], 9
mov byte [eax + 0x29], 0xa9
mov byte [eax + 0x2a], 0x39
mov byte [eax + 0x2b], 0xab
mov byte [eax + 0x2c], 0x3f
mov byte [eax + 0x2d], 0xad
mov byte [eax + 0x2e], 0x4e
mov byte [eax + 0x2f], 0xaf
mov byte [eax + 0x30], 0x90
mov byte [eax + 0x31], 0x91
mov ecx, 0x32
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 0x38
jne 0x417379
mov edx, dword [esi + 0x7c]
xor ecx, ecx
cmp ecx, 0x38
jae 0x41743a
mov dword [esi + 0xa0], edx
mov eax, dword [esi + 0xa0]
movzx edx, byte [eax + ecx]
mov ebx, ecx
add ebx, 0xfa2013b0
mov dword [esi + 0x300], ebx
mov eax, edx
xor eax, 0xffffffff
and ebx, eax
mov eax, 0x4f
sub eax, ecx
and eax, edx
or eax, ebx
mov ebx, 0x5dfec4f
sub ebx, ecx
mov edi, 0x5dfec4f
sub edi, ecx
and ebx, edi
or eax, ebx
mov ebx, eax
xor ebx, 0xffffffff
mov edi, ebx
and edi, 0xfffffffd
and eax, 2
imul eax, edi
mov edi, ebx
and edi, 2
or ebx, 2
imul ebx, edi
add ebx, eax
sub ebx, dword [esi + 0x300]
mov eax, ebx
xor eax, edx
xor ebx, 0xffffffff
and edx, ebx
shl edx, 1
sub edx, eax
add edx, 0x1d5f9d8f
mov eax, edx
shl eax, 1
and eax, 2
mov edi, edx
shl edi, 1
and edi, 2
add edi, 0xff
sub edx, edi
add edx, eax
mov eax, dword [esi + 0xa0]
mov byte [eax + ecx], dl
mov edx, dword [esi + 0xa0]
add ecx, 1
jmp 0x41738a
mov eax, dword [esi + 0x2b8]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00409fb0
add esp, 8
mov ecx, dword [esi + 0xec]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409fb0
add esp, 8
mov eax, dword [esi]
mov dword [eax], 0x2d64e041
mov ebx, dword [ebp + 8]
jmp 0x418ce1
mov eax, dword [esi + 0xec]
sub esp, 4
mov dword [esp], eax
call fcn.004083c0
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xd186bcf1
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x804b7b46
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x789fa6e0
jmp 0x418ce1
mov eax, 0xc0e2b1f2
cmp dword [esi + 0x98], 2
je 0x417567
mov eax, 0xcf808980
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov eax, 0x60b57c71
test byte [esi + 0x19], 1
jne 0x41759c
mov eax, 0x22a357ea
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
call fcn.00419140
mov edi, dword [esi + 0x24]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x24]
mov dword [eax], 0x44
mov eax, dword [0x44cd4c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0xef6ed546
call fcn.0043f9f0
add esp, 8
test eax, eax
setne cl
mov edi, dword [esi + 0x94]
mov ebx, dword [esi + 0x48]
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x2e8], ecx
mov edx, dword [esi + 0x24]
xor ecx, ecx
sub esp, 0x28
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], edx
mov ecx, dword [esi + 0x2e8]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
setne al
and al, 1
mov byte [esi + 0x41], al
mov eax, dword [esi]
mov dword [eax], 0xb701b946
mov ebx, dword [ebp + 8]
jmp 0x418ce1
mov eax, 0x84f8404a
test byte [esi + 0x41], 1
jne 0x41767b
mov eax, 0x7e2881b4
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xb92bebcc
jmp 0x418ce1
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
mov dword [esi + 0x344], eax
mov al, byte [esi + 0x158]
mov byte [esi + 0x1ec], al
mov byte [esi + 0x15c], 0x9b
mov byte [esi + 0x15d], 0x9a
mov byte [esi + 0x15e], 0x9d
mov byte [esi + 0x15f], 0x9c
mov eax, 4
mov byte [esi + eax + 0x15c], 0
add eax, 1
cmp eax, 7
jne 0x4176c9
xor eax, eax
cmp eax, 7
jae 0x41771b
movzx edx, byte [esi + eax + 0x15c]
mov ecx, eax
add ecx, 0xb75406da
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0xbe
mov byte [esi + eax + 0x15c], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
shl edx, 1
and edx, 2
add edx, 0xffffffff
sub eax, edx
add eax, ecx
jmp 0x4176db
mov eax, dword [esi + 0x15c]
mov dword [esi + 0x30c], eax
xor edi, edi
cmp edi, dword [0x44cd58]
jb 0x417733
jmp 0x41778e
mov eax, dword [0x44cd5c]
cmp dword [eax + edi*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x417749
jmp 0x41777f
mov eax, dword [eax + edi*8 + 4]
cmp eax, dword [esi + 0x30c]
je 0x41777f
mov ecx, dword [0x44cd60]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x344]
mov dword [esp + 0xc], eax
call fcn.0043dda0
add esp, 0x10
test bl, 1
mov ebx, dword [ebp + 8]
jne 0x41778c
add edi, 1
jmp 0x417729
jmp 0x41778e
mov eax, dword [esi]
mov dword [eax], 0xed933dd2
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xcf808980
jmp 0x418ce1
mov eax, dword [esi + 4]
sub esp, 4
mov dword [esp], eax
call fcn.0043b010
add esp, 4
cmp dword [esi + 0x94], 0
sete al
and al, 1
mov byte [esi + 0x43], al
mov eax, dword [esi]
mov dword [eax], 0x573bbc1a
jmp 0x418ce1
mov eax, 0xdc84775b
cmp dword [esi + 0x48], 0
mov ebx, dword [ebp + 8]
je 0x417e2e
mov eax, 0x6476aa92
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0xcb3da614
mov eax, dword [esi + 0x3e4]
mov dword [esi + 0x220], eax
jmp 0x418ce1
mov al, byte [esi + 0x18]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jo 0x417ff8
lodsb al, byte [esi]
invalid
fst qword [ebx + ecx*4 + 6]
mov dword [eax], 0xcfbcebed
jmp 0x418ce1
mov bl, 0x3b
sbb ah, byte [ecx + 0x47]
jno 0x41804e
invalid
dec ebx
sar dword [edx + edx*2], 0x59
in eax, dx
add ebx, eax
mov eax, dword [esi]
mov dword [eax], 0xc6c84a34
jmp 0x418ce1
fdiv qword [0x19e8d798]
or edi, edi
dec dword [ebx + 0x4200c706]
mov edi, 0x2de95417
or al, 0
add byte [esi], cl
cmp eax, 0xdf810ed7
sub ecx, esp
fucomi st(0)
mov ecx, 0xafbe810
invalid
loop 0x418146
xchg ecx, eax
cmp dword [ecx], 0x45
out 0x7e, eax
mov eax, dword [esi]
mov dword [eax], 0xeb319398
jmp 0x418ce1
mov byte [eax + 1], 0x6b
mov byte [eax + 2], 0xe
mov byte [eax + 3], 0x69
mov byte [eax + 4], 4
mov byte [eax + 5], 0x6f
mov byte [eax + 6], 2
mov byte [eax + 7], 0x6d
mov byte [eax + 8], 0x6c
mov byte [eax + 9], 0x73
mov ecx, 0xa
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 0xf
jne 0x41816f
mov edx, dword [esi + 0x44]
xor ecx, ecx
cmp ecx, 0xf
jae 0x4181eb
movzx eax, byte [edx + ecx]
mov dword [esi + 0x2fc], eax
mov dword [esi + 0x334], edx
mov edx, 0x98
sub edx, ecx
or edx, eax
mov ebx, 0xa369e998
sub ebx, ecx
mov eax, 0xa369e998
sub eax, ecx
mov edi, 0xa369e998
sub edi, ecx
or eax, edi
and eax, ebx
mov ebx, eax
xor ebx, 0xffffffff
shl ebx, 1
add ebx, eax
mov eax, dword [esi + 0x2fc]
xor eax, 0xffffffff
add ebx, 1
or ebx, eax
and edx, ebx
mov al, 0xfc
sub al, dl
mov edx, dword [esi + 0x334]
mov byte [edx + ecx], al
mov eax, ecx
shl eax, 1
and eax, 2
xor ecx, 1
add ecx, eax
jmp 0x418180
mov eax, dword [esi + 0x20]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004190d0
add esp, 8
mov eax, dword [esi]
mov dword [eax], 0x28755e7
mov ebx, dword [ebp + 8]
jmp 0x418ce1
mov eax, dword [esi]
mov dword [eax], 0x6483f211
jmp 0x418ce1
test dword [ebx + 0x7f], edi
aas
in al, dx
mov ebx, 0x7d7a3051
pop edi
mov dl, 0x8b
inc esi
push eax
mov eax, dword [eax]
mov dword [esi + 0x354], eax
mov al, byte [esi + 0x128]
mov byte [esi + 0x1fc], al
mov byte [esi + 0x12c], 0x9b
mov byte [esi + 0x12d], 0x9a
mov byte [esi + 0x12e], 0x9d
mov byte [esi + 0x12f], 0x9c
mov eax, 4
mov byte [esi + eax + 0x12c], 0
add eax, 1
cmp eax, 7
jne 0x418928
xor eax, eax
cmp eax, 7
jae 0x41897a
movzx edx, byte [esi + eax + 0x12c]
mov ecx, eax
add ecx, 0xb75406da
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0xbe
mov byte [esi + eax + 0x12c], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
shl edx, 1
and edx, 2
add edx, 0xffffffff
sub eax, edx
add eax, ecx
jmp 0x41893a
mov ecx, dword [esi + 0x12c]
xor edi, edi
cmp edi, dword [0x44cd58]
jb 0x41898c
jmp 0x4189ec
mov eax, dword [0x44cd5c]
cmp dword [eax + edi*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x4189a2
jmp 0x4189e0
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x4189e0
mov dword [esi + 0x31c], ecx
mov ecx, dword [0x44cd60]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x354]
mov dword [esp + 0xc], eax
call fcn.0043dda0
mov ecx, dword [esi + 0x31c]
add esp, 0x10
test bl, 1
jne 0x4189ea
add edi, 1
jmp 0x418982
jmp 0x4189ec
mov eax, dword [esi]
mov dword [eax], 0xb92bebcc
mov ebx, dword [ebp + 8]
jmp 0x418ce1
pop esp
mov ebp, 0x767b78e9
pop esp
or al, 0xfb
scasb al, byte es:[edi]
push eax
in al, dx
mov eax, dword [esi + 4]
sub esp, 4
mov dword [esp], eax
call fcn.0043b010
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xbabeee91
jmp 0x418ce1
jmp 0x4143b6