Function at 0x1004a140
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x60
mov esi, esp
mov eax, dword [ebp + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [0x100bf198]
xor eax, ebp
mov dword [esi + 0x5c], eax
mov eax, dword [0x100be874]
sub eax, dword [0x100be878]
and eax, 0x43501803
mov ecx, 0xb3d1a73f
xor edx, edx
div ecx
imul eax, eax, 0x8b82689c
imul eax, eax, 0xbfccc20b
imul eax, eax, 0x86ea85bb
xor eax, 0xed92202b
add eax, 0x6c138cf6
imul eax, eax, 0x70bcca9f
mov ecx, 0x16077581
xor edx, edx
div ecx
sub eax, 0x77a44da9
and eax, 0xe5ffac8e
imul eax, eax, 0x6e2bff4
or eax, 0x2ac9fb13
add eax, 0xbc7351af
sub eax, 0x8a17b0db
and eax, 0xa76e2def
add eax, 0x36e90a69
add eax, 0x4ffd20b9
and eax, 0x4da93b3c
sub eax, 0x6227f266
sub eax, 0xd0583e03
imul eax, eax, 0x24e48239
sub eax, 0xd53322a8
or eax, 0xd22f9966
xor eax, 0xac2bb839
or eax, 0xfa56b66f
imul eax, eax, 0x206986cc
sub eax, 0x4acfa48a
sub eax, 0x7ea7bc36
add eax, 0x39b632a2
imul eax, eax, 0x97c59316
and eax, 0x148f5224
or eax, 0xc6cdb812
imul eax, eax, 0xee08a146
imul eax, eax, 0x844830aa
xor eax, 0x99bbc2eb
imul eax, eax, 0x68c15ee0
imul eax, eax, 0xc6bf4545
and eax, 0x321bd62f
sub eax, 0xce5d0480
imul eax, eax, 0x2db000be
and eax, 0x96e3592f
and eax, 0xacb7b3c
or eax, 0xd3ff3d3f
xor eax, 0x46625ba
or eax, 0x12c679d0
mov ecx, 0x9be27c5c
xor edx, edx
div ecx
and eax, 0x8763100e
add eax, 0x24967ee0
and eax, 0x25c21f2
add eax, 0xbe21ea0c
or eax, 0x16ffb38f
xor eax, 0xbe4c55e
sub eax, 0xb18e42a4
xor eax, 0x632b52d2
imul eax, eax, 0xd6322674
add eax, 0x1aa502a6
add eax, 0xc18ab0d9
mov ecx, 0xacf12d0a
xor edx, edx
div ecx
mov ecx, 0xd2615a62
xor edx, edx
div ecx
imul eax, eax, 0xf9ce6ebd
imul eax, eax, 0xa9bc5616
sub eax, 0x1ca5fb72
add eax, 0x42857df7
mov ecx, 0xf50eceb8
xor edx, edx
div ecx
and eax, 0x2634609e
and eax, 0x51456f0d
add eax, 0x8bc0761d
imul eax, eax, 0x73383c8c
imul eax, eax, 0x3b2ab8ff
add eax, 0x1ebb268d
or eax, 0xb2f82d9d
cmp eax, 0x5b74f965
jbe 0x1004c136
mov edx, dword [esi + 0x4c]
mov eax, 0x27b83fff
mov dword [esi + 0x48], eax
push eax
mov ecx, esp
mov dword [esi + 0x1c], ecx
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x20], eax
mov esp, eax
push eax
mov edi, esp
mov dword [esi + 0x24], edi
push eax
mov edi, esp
mov dword [esi + 0x28], edi
push eax
mov edi, esp
mov dword [esi + 0x2c], edi
push eax
mov edi, esp
mov dword [esi + 0x30], edi
push eax
mov edi, esp
mov dword [esi + 0x34], edi
push eax
mov edi, esp
mov dword [esi + 0x38], edi
sub esp, 8
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x3c], edi
mov esp, edi
push eax
push eax
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x40], edi
mov esp, edi
push eax
push eax
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x44], edi
mov esp, edi
mov dword [ecx], edx
sub esp, 4
mov dword [esp], eax
call fcn.1004c1e0
mov eax, dword [esi + 0x48]
add esp, 4
cmp eax, 0x1c2821c2
jbe 0x1004a305
jmp 0x1004a38f
mov eax, dword [esi + 0x24]
mov dword [eax], 0xbb8
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10066f81
mov ecx, dword [esi + 0x28]
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x2c]
mov dword [ecx], edx
mov dword [eax], 0
mov eax, dword [0x100be884]
xor eax, dword [0x100be888]
and eax, 0x38342328
and eax, 0x486563a4
or eax, 0x3499afa5
imul eax, eax, 0x49ca0efe
and eax, 0xcc660a48
mov ecx, 0xa770f840
xor edx, edx
div ecx
imul eax, eax, 0x7665839a
imul eax, eax, 0x7f7d6c28
imul eax, eax, 0xb67b2b39
or eax, 0x267983c0
xor eax, 0xff3ef104
add eax, 0xb0c92f04
sub eax, 0xa5b25de2
xor eax, 0xa29425fd
imul eax, eax, 0x41f07067
and eax, 0xe44700e3
add eax, 0x10eaebd8
sub eax, 0x1b1f4308
mov ecx, 0xd33bd0e
xor edx, edx
div ecx
sub eax, 0x41bae1e
add eax, 0xb9f4650f
or eax, 0xdc69eb88
and eax, 0xac7088f6
sub eax, 0xb3a80717
and eax, 0xdf338711
xor eax, 0xedad52dc
add eax, 0x658225e1
xor eax, 0xf41cad7f
add eax, 0xd80b9799
add eax, 0x600ba6d9
xor eax, 0x11f2e04e
imul eax, eax, 0xe7eac664
and eax, 0xc42fc69e
xor eax, 0xf2aa4907
and eax, 0x1812892d
imul eax, eax, 0xedeafa71
xor eax, 0x2f10cf7e
sub eax, 0x3303ac27
imul eax, eax, 0xbfc7f471
add eax, 0x1218e780
xor eax, 0x78c6bc34
imul eax, eax, 0x638db883
imul eax, eax, 0x1908f3c3
xor eax, 0xc6de52b4
sub eax, 0x365f3204
or eax, 0x571b5a69
add eax, 0x25b42063
mov ecx, 0x6d27ea1b
xor edx, edx
div ecx
add eax, 0x176333ec
mov ecx, 0x1ca2ce68
xor edx, edx
div ecx
xor eax, 0x4e68faa
mov ecx, 0xd885aa12
xor edx, edx
div ecx
imul eax, eax, 0x985c7cd0
sub eax, 0x446e5fe5
mov ecx, 0xfa781bbe
xor edx, edx
div ecx
and eax, 0x6ec8c99c
sub eax, 0x7d61446c
sub eax, 0xb3c4808f
sub eax, 0xc039f4d6
xor eax, 0x3a52c158
and eax, 0x51873650
mov ecx, 0x3f81a5c4
xor edx, edx
div ecx
or eax, 0xc0685b64
and eax, 0x4107a406
xor eax, 0x3b037860
add eax, 0x665ff7c5
and eax, 0xed30aece
mov ecx, 0xac39f8d7
xor edx, edx
div ecx
or eax, 0xaed9e607
and eax, 0x56f5581a
mov ecx, 0xfdc853e
xor edx, edx
div ecx
sub eax, 0x4e597aec
cmp eax, 0x6c9cfc2e
je 0x1004c15b
mov ecx, dword [esi + 0x2c]
mov eax, dword [0x100be88c]
xor eax, dword [0x100be890]
add eax, 0x19c7587b
xor eax, 0xbb5d2a17
mov edi, 0x49a59730
xor edx, edx
div edi
mov edi, 0x4e0950b9
xor edx, edx
div edi
mov edi, 0xa5e63db0
xor edx, edx
div edi
sub eax, 0xa693dfa3
add eax, 0x89133683
xor eax, 0x6ea24258
xor eax, 0x10ff49a5
sub eax, 0xa0fc7fde
imul eax, eax, 0xe57735e6
and eax, 0xfcacc78
mov edi, 0xb4f82c83
xor edx, edx
div edi
and eax, 0x940c9cb9
or eax, 0x645df000
sub eax, 0x583d8b42
sub eax, 0xed8cd3a7
imul eax, eax, 0x16ace302
xor eax, 0x83411e08
imul eax, eax, 0x55720c2f
and eax, 0x607ab961
xor eax, 0xa9bb28e
add eax, 0xeac4284f
add eax, 0x5e5d31ba
sub eax, 0xa340eead
mov edi, 0x848404cd
xor edx, edx
div edi
add eax, 0xb230b7cc
add eax, 0x17170d6d
mov edi, 0xeb49d522
xor edx, edx
div edi
and eax, 0x3c02c51e
and eax, 0x9799e178
imul eax, eax, 0x37522ed
or eax, 0x21da558d
add eax, 0xbc5bd6dc
add eax, 0xa2e0cea2
imul eax, eax, 0xd774fd6f
sub eax, 0xea4da20d
add eax, 0x193127d6
sub eax, 0x3a0aae01
mov edi, 0x13ca1135
xor edx, edx
div edi
or eax, 0x9805b779
add eax, 0x494be2b0
mov edi, 0x6507638
xor edx, edx
div edi
mov edi, 0x2f404ba5
xor edx, edx
div edi
or eax, 0xd38c6770
imul eax, eax, 0x76ed5c7a
mov edi, 0x8dc2999d
xor edx, edx
div edi
sub eax, 0xa3f3c732
imul eax, eax, 0x928b78e5
xor eax, 0x1a3bd6fa
mov edi, 0xa4df1925
xor edx, edx
div edi
imul eax, eax, 0x207bfe69
sub eax, 0x120621a8
and eax, 0xf9b377a5
imul eax, eax, 0x76189489
sub eax, 0xc15973f1
xor eax, 0x3263a028
sub eax, 0x2d44df40
add eax, 0x28764438
imul eax, eax, 0x5a4580c2
or eax, 0x961a9851
mov edi, 0x40beb014
xor edx, edx
div edi
sub eax, 0xcd3d4ab6
sub eax, 0x51b5ede7
and eax, 0x41be990a
and eax, 0xc170c67
add eax, 0x11e3fc3d
add eax, 0x592013f2
or eax, 0xfb8abf4e
mov edi, 0x17cfdb28
xor edx, edx
div edi
mov edx, dword [esi + 0x24]
or eax, 0x20f576b1
and eax, 0xc3b90886
mov ecx, dword [ecx]
cmp ecx, dword [edx]
setl cl
mov byte [esi + 0x1b], cl
cmp eax, 0xc18b05f0
je 0x1004a565
mov al, byte [esi + 0x1b]
test al, 1
jne 0x1004a741
jmp 0x1004a76a
call fcn.10087c67
mov ecx, dword [esi + 0x2c]
mov edi, 0x100
cdq
idiv edi
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov byte [eax + ecx], dl
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax]
add ecx, 1
mov dword [eax], ecx
jmp 0x1004a3b8
mov eax, dword [0x100be894]
xor edx, edx
div dword [0x100be898]
sub eax, 0xa1fd9000
imul eax, eax, 0xb19b01b0
mov ecx, 0x99f0a0c4
xor edx, edx
div ecx
imul eax, eax, 0xbe4b9f2b
sub eax, 0xe0beff6
sub eax, 0x127bda51
sub eax, 0x8ca8b163
mov ecx, 0x2a54c031
xor edx, edx
div ecx
sub eax, 0x626cd5d7
and eax, 0xa9450e57
sub eax, 0xabaefeb7
imul eax, eax, 0x91ab2ade
imul eax, eax, 0xf655dd5
or eax, 0xf697ad62
and eax, 0x323b135c
and eax, 0x1dd7c2cf
or eax, 0x918f44b0
add eax, 0x4d9ccb3c
sub eax, 0xe349e1ad
add eax, 0xa8d6fe6a
xor eax, 0xff4a136b
xor eax, 0xbc5a3c13
add eax, 0x4eff827f
and eax, 0xe76cc31c
imul eax, eax, 0xa001a9de
imul eax, eax, 0x3d19b1f4
imul eax, eax, 0xe59a4d35
imul eax, eax, 0x1c7cce00
and eax, 0xbc928a66
xor eax, 0xc35f251
sub eax, 0x2375e9da
add eax, 0xcd28cd14
mov ecx, 0x3bf41975
xor edx, edx
div ecx
or eax, 0x4c6d606c
add eax, 0x3ddca1e0
imul eax, eax, 0xb50e916c
imul eax, eax, 0x1645b7f
add eax, 0x538a54d1
imul eax, eax, 0x72014b7e
imul eax, eax, 0x565ca58
mov ecx, 0x100a9e3d
xor edx, edx
div ecx
sub eax, 0xf5f7bffa
sub eax, 0xf9f7d0b7
xor eax, 0xb6f2ae2a
xor eax, 0x2e07efea
xor eax, 0x584b979f
xor eax, 0x6fb6fc74
and eax, 0x5635b3
xor eax, 0x6385bb5
xor eax, 0xd1efa2a
mov ecx, 0x617af851
xor edx, edx
div ecx
add eax, 0x260fb7a
sub eax, 0xfcb355f4
xor eax, 0x21d1dc7c
imul eax, eax, 0xaacf9dde
sub eax, 0x2e4462cf
mov ecx, 0x98d28dc8
xor edx, edx
div ecx
and eax, 0x3bf93be4
mov ecx, 0x1560ef10
xor edx, edx
div ecx
or eax, 0x1fdd0b43
or eax, 0x21d8a97d
xor eax, 0x6c560ac1
or eax, 0xf993fde
xor eax, 0xda9990fa
sub eax, 0x401d2043
or eax, 0xbab30a62
xor eax, 0x83335e83
xor eax, 0xd6766733
and eax, 0x6a320455
mov ecx, 0xf1e713dd
xor edx, edx
div ecx
add eax, 0x8afcf
mov ecx, 0xa45b558b
xor edx, edx
div ecx
cmp eax, 0x77a4b5d2
je 0x1004c160
mov eax, dword [0x100be89c]
imul eax, dword [0x100be8a0]
xor eax, 0x485a2f1b
or eax, 0xa36a9144
add eax, 0x548b2538
add eax, 0xbe3ab756
sub eax, 0x734edb7c
mov ecx, 0xb1b6853c
xor edx, edx
div ecx
add eax, 0x938e3099
xor eax, 0x6c1973f
mov ecx, 0x84698afa
xor edx, edx
div ecx
or eax, 0x87ac94a9
xor eax, 0x9fab2178
imul eax, eax, 0x256fe0cc
xor eax, 0x250a84e1
and eax, 0x9cdc78b7
or eax, 0x3aea5f1f
sub eax, 0x79471fb8
and eax, 0xfd857965
mov ecx, 0x5161bc2
xor edx, edx
div ecx
mov ecx, 0x87a73ef
xor edx, edx
div ecx
mov ecx, 0x208d2681
xor edx, edx
div ecx
imul eax, eax, 0xb3a3b97f
mov ecx, 0x92e296a7
xor edx, edx
div ecx
or eax, 0x9a5a356e
or eax, 0x5be19ad9
xor eax, 0xc0f32668
sub eax, 0xfae5661a
or eax, 0xd95e9587
mov ecx, 0x67d494c9
xor edx, edx
div ecx
sub eax, 0x6eb78eac
sub eax, 0xc4e5830f
xor eax, 0xd4d2fa2f
mov ecx, 0x9e2a6770
xor edx, edx
div ecx
xor eax, 0x90cd42bb
sub eax, 0xd5f7815a
mov ecx, 0x247e2d9d
xor edx, edx
div ecx
mov ecx, 0xaa886079
xor edx, edx
div ecx
mov ecx, 0x9b339a1f
xor edx, edx
div ecx
mov ecx, 0x6e1f9725
xor edx, edx
div ecx
imul eax, eax, 0xc1417c8c
imul eax, eax, 0x64b7dea7
and eax, 0xc3b95ed3
add eax, 0x47cc0187
imul eax, eax, 0xc748f8c5
and eax, 0xc0ebaa6
imul eax, eax, 0x4f4b8cbb
xor eax, 0x2383b55a
add eax, 0xcb86e5e1
mov ecx, 0xd1100a2a
xor edx, edx
div ecx
and eax, 0x9ca4963d
or eax, 0xe6ae1d55
sub eax, 0xde177b9f
xor eax, 0x6415dbc6
and eax, 0x7560c955
mov ecx, 0xe3d30ba0
xor edx, edx
div ecx
sub eax, 0x893b5f66
and eax, 0x608f1e70
or eax, 0xa47b8328
xor eax, 0x183519da
imul eax, eax, 0xcb1b47a7
and eax, 0x138d97db
mov ecx, 0xeefca325
xor edx, edx
div ecx
mov ecx, 0x3d7b0788
xor edx, edx
div ecx
mov ecx, 0xba3b4d61
xor edx, edx
div ecx
sub eax, 0xb805f58d
imul eax, eax, 0x1a5ee2b5
xor eax, 0x763b5f6f
or eax, 0x6960b638
mov ecx, 0x52d128e6
xor edx, edx
div ecx
add eax, 0xa0e6d97e
add eax, 0x599f24ba
add eax, 0x9c5aade8
or eax, 0x4d71f8e5
mov dword [esi + 0x14], eax
sub esp, 0xc
mov dword [esp], 8
mov dword [esp + 4], 8
mov dword [esp + 8], 0x1c
call fcn.100259b0
mov ecx, dword [esi + 0x30]
add esp, 0xc
mov eax, dword [esi + 0x14]
mov dword [ecx], 0
cmp eax, 0xb698284a
jb 0x1004c160
jmp 0x1004ab20
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
cmp eax, dword [ecx]
jge 0x1004b9bb
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov ecx, dword [ecx]
movsx eax, byte [eax + ecx]
mov ecx, 2
cdq
idiv ecx
cmp edx, 0
jne 0x1004af2e
mov eax, dword [str._xw]
add eax, dword [0x100be8a8]
xor eax, 0x75b50c44
and eax, 0x610f3e70
imul eax, eax, 0xb447bca3
sub eax, 0x5ee96aab
sub eax, 0x7d381611
or eax, 0x7b57c685
or eax, 0x7bcaf891
imul eax, eax, 0x69bb1f22
sub eax, 0x392e1fd2
or eax, 0x4d016834
mov ecx, 0x450075a1
xor edx, edx
div ecx
add eax, 0x876cad30
add eax, 0x3e46dced
sub eax, 0xa43b304d
sub eax, 0x5f1a9046
and eax, 0x1ef07db
and eax, 0x528421b7
or eax, 0xe0afac81
sub eax, 0xf1f8d992
mov ecx, 0xde3c664f
xor edx, edx
div ecx
xor eax, 0x9893b5ce
or eax, 0xa1b1ae0e
xor eax, 0x7ae77fb7
and eax, 0xcb908b33
sub eax, 0xda7b9249
imul eax, eax, 0x916e0408
or eax, 0xb59fd2cd
or eax, 0x79ca2dc1
or eax, 0xd0084fcb
add eax, 0xc957c97a
mov ecx, 0x9352570f
xor edx, edx
div ecx
or eax, 0x4c1cf2e1
imul eax, eax, 0x7959b4cb
imul eax, eax, 0xd0e7df90
add eax, 0x34a9ec84
imul eax, eax, 0xe6aed11e
and eax, 0x3b2244a8
xor eax, 0x7f6226a0
xor eax, 0xc7bae4a8
add eax, 0xc098ff1f
sub eax, 0x6bcc5b3a
mov ecx, 0x38e9e431
xor edx, edx
div ecx
or eax, 0x60b9cab3
imul eax, eax, 0xfd58f85f
mov ecx, 0x97a7516f
xor edx, edx
div ecx
add eax, 0x9545447b
imul eax, eax, 0x3be3b941
xor eax, 0x5041c55
imul eax, eax, 0xffce2a87
mov ecx, 0xccb7f54
xor edx, edx
div ecx
and eax, 0xa6122f2c
imul eax, eax, 0x5b07771e
xor eax, 0xab709d36
xor eax, 0xfb86d542
xor eax, 0xd8df899c
xor eax, 0x3acee1c9
or eax, 0x2826f175
xor eax, 0x8639d915
and eax, 0x2febbb40
mov ecx, 0x5b1eaf35
xor edx, edx
div ecx
imul eax, eax, 0x91c3fbc5
imul eax, eax, 0xffbb5730
mov ecx, 0x8e01ab6e
xor edx, edx
div ecx
mov ecx, 0xab3c407e
xor edx, edx
div ecx
or eax, 0xaed85dd
xor eax, 0x88a9ae8c
imul eax, eax, 0xda5d1d87
and eax, 0x9a5b8d6f
imul eax, eax, 0xccc5751e
or eax, 0xae09a986
add eax, 0x948f6a8
mov ecx, 0x864ad45d
xor edx, edx
div ecx
cmp eax, 0x32c0e17d
ja 0x1004c190
mov ecx, dword [esi + 0x34]
mov eax, dword [0x100be8ac]
and eax, dword [0x100be8b0]
or eax, 0xa1f24f92
imul eax, eax, 0xb8190e7e
mov edi, 0x7158786e
xor edx, edx
div edi
imul eax, eax, 0x1453278c
add eax, 0x17ff49ee
sub eax, 0xbf913b81
or eax, 0x34613a97
add eax, 0xadd951fc
mov edi, 0x391a7842
xor edx, edx
div edi
imul eax, eax, 0xf79eac46
add eax, 0x2ce74f4e
add eax, 0x27d4f4fc
add eax, 0xa48411e4
imul eax, eax, 0x7a33373f
mov edi, 0x4d691ae
xor edx, edx
div edi
and eax, 0x23aebb2
mov edi, 0x3c2a8b0e
xor edx, edx
div edi
or eax, 0x19d1bf88
sub eax, 0xf09001fb
or eax, 0xad060503
mov edi, 0x1b9dc54f
xor edx, edx
div edi
mov edi, 0x6538b260
xor edx, edx
div edi
and eax, 0x37d82740
or eax, 0x5d87de1f
xor eax, 0xa550f66d
mov edi, 0x2df61af0
xor edx, edx
div edi
imul eax, eax, 0xb2791548
mov edi, 0x20ed3ba
xor edx, edx
div edi
sub eax, 0xf2f9515e
imul eax, eax, 0x8ee0b15
and eax, 0x3025a3a8
xor eax, 0x4b5be4c7
sub eax, 0x8872ff36
sub eax, 0x634cde75
mov edi, 0x7da9dd88
xor edx, edx
div edi
xor eax, 0xcdf30b40
xor eax, 0x51f78d4b
mov edi, 0xd3b1ec51
xor edx, edx
div edi
xor eax, 0x129e3647
xor eax, 0x6790238a
or eax, 0xad1cfeb
xor eax, 0xcf1a0112
add eax, 0x593431c1
mov edi, 0x7b9b2fb7
xor edx, edx
div edi
imul eax, eax, 0xa9222ebb
imul eax, eax, 0xa4a6a14d
mov edi, 0xe804f18b
xor edx, edx
div edi
and eax, 0xe3ce1b69
mov edi, 0x11e292aa
xor edx, edx
div edi
imul eax, eax, 0x7c34ec51
xor eax, 0x80fc7fd9
and eax, 0x27a1feab
or eax, 0x95b4fa05
and eax, 0x8097a622
xor eax, 0x8a3e1fea
mov edi, 0x87b117de
xor edx, edx
div edi
mov edi, 0xf25a455c
xor edx, edx
div edi
xor eax, 0x3c88b065
add eax, 0x938b4d77
mov edi, 0xbbd467e1
xor edx, edx
div edi
and eax, 0xbeaebf10
imul eax, eax, 0x354a8e32
add eax, 0xaf9230cc
xor eax, 0xa7c8b1be
and eax, 0x8a1e5bbb
add eax, 0x65c58ab6
xor eax, 0x38962724
imul eax, eax, 0x79f36a25
xor eax, 0x3544d624
or eax, 0x72f23f78
xor eax, 0x466c8a31
or eax, 0x560c1123
mov dword [ecx], 0
cmp eax, 0xaf9d1ad8
je 0x1004ad03
jmp 0x1004aeda
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [edx]
movsx ecx, byte [ecx + edx]
cmp eax, ecx
jge 0x1004af29
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x34]
mov eax, dword [eax]
mov edi, dword [ecx]
movsx eax, byte [eax + edi]
add eax, dword [edx]
mov edi, 0x100
cdq
idiv edi
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov byte [eax + ecx], dl
mov eax, dword [esi + 0x34]
mov ecx, dword [eax]
add ecx, 1
mov dword [eax], ecx
jmp 0x1004aeda
jmp 0x1004b303
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx]
mov edx, dword [edx]
movsx ecx, byte [ecx + edx]
mov dword [eax], ecx
mov eax, dword [0x100be8b4]
sub eax, dword [0x100be8b8]
imul eax, eax, 0xfcc0eff4
mov ecx, 0x3a7f9ff0
xor edx, edx
div ecx
imul eax, eax, 0xa4e27b36
mov ecx, 0xbf4d33c5
xor edx, edx
div ecx
or eax, 0x13570fba
or eax, 0x65ef18e1
imul eax, eax, 0x22287502
and eax, 0x676ce4c7
and eax, 0x5fd3f41d
and eax, 0xbd461182
xor eax, 0x2098505d
imul eax, eax, 0x764067cf
imul eax, eax, 0xf843ecc4
and eax, 0x62f5ae18
add eax, 0x9a1b10fe
and eax, 0x1f11f95e
sub eax, 0x29dc5fc
sub eax, 0x85b735ee
xor eax, 0x63977696
sub eax, 0x35c413d1
or eax, 0x182d2b44
sub eax, 0x7055b34e
imul eax, eax, 0xea1abd41
sub eax, 0xf33a463c
add eax, 0xd3a23eab
or eax, 0xff0e7156
mov ecx, 0xd837714b
xor edx, edx
div ecx
imul eax, eax, 0x38a2d948
add eax, 0xb0e311f8
or eax, 0x7045ff5e
or eax, 0xf8db751d
or eax, 0x867baa98
mov ecx, 0x73003736
xor edx, edx
div ecx
imul eax, eax, 0x15b859fc
sub eax, 0x58e9a759
and eax, 0xc10f5345
xor eax, 0xbbf29c26
mov ecx, 0x9acf8bb9
xor edx, edx
div ecx
and eax, 0xd0f25948
add eax, 0x802d37a8
mov ecx, 0xf1de50b3
xor edx, edx
div ecx
add eax, 0xd69a3717
and eax, 0x303aa70e
xor eax, 0xaa2b122c
add eax, 0x60115d35
sub eax, 0x82c916b0
sub eax, 0x6f264e40
or eax, 0xae8b5ae5
sub eax, 0x7b3a3310
imul eax, eax, 0x7bff158d
and eax, 0x3f9d3987
xor eax, 0xd58a3e56
imul eax, eax, 0x74727694
or eax, 0x5c9bdbba
mov ecx, 0x143a8c72
xor edx, edx
div ecx
imul eax, eax, 0x7571c467
or eax, 0x4c19e831
add eax, 0xb22a0ca8
or eax, 0x9457f0d0
sub eax, 0x5f0ae0c5
mov ecx, 0x21d529f3
xor edx, edx
div ecx
mov ecx, 0x5ce811ad
xor edx, edx
div ecx
or eax, 0xf001f49f
or eax, 0x5874f32c
sub eax, 0xf3d783e3
or eax, 0x998cbefa
add eax, 0x16fcd0a8
mov ecx, 0x29d602de
xor edx, edx
div ecx
sub eax, 0xb3cbedfd
xor eax, 0xef9fff19
sub eax, 0x8b60e516
add eax, 0xbd194be1
cmp eax, 0xba3d4246
jb 0x1004c19e
mov ecx, dword [esi + 0x38]
mov eax, dword [0x100be8bc]
xor eax, dword [0x100be8c0]
imul eax, eax, 0x719deba3
xor eax, 0x6222b7c0
or eax, 0x67b5941c
add eax, 0x5bb8af54
or eax, 0xb39dc48d
add eax, 0xa8fd784
xor eax, 0x716250fb
sub eax, 0x2fec9a0
mov edi, 0xa305a459
xor edx, edx
div edi
or eax, 0xe5d37d45
imul eax, eax, 0x729103ee
imul eax, eax, 0x7639694e
add eax, 0x6c315bdf
xor eax, 0x66c9eb79
sub eax, 0x13468178
and eax, 0x12b6f109
sub eax, 0xbb1bba02
sub eax, 0x6ef7a93
add eax, 0x94ea583
sub eax, 0x5a55497
xor eax, 0x76c14a6c
add eax, 0xfffbfd7a
xor eax, 0x49095dd6
mov edi, 0x6ee8fdc9
xor edx, edx
div edi
imul eax, eax, 0x18f0e46d
add eax, 0xafd18ec6
sub eax, 0x5f898d14
add eax, 0xc38b162
mov edi, 0x59b141b2
xor edx, edx
div edi
imul eax, eax, 0xf4042840
add eax, 0x16d64a11
mov edi, 0x3fdbae73
xor edx, edx
div edi
mov edi, 0xfe992483
xor edx, edx
div edi
add eax, 0xd5098630
mov edi, 0x63e6eb29
xor edx, edx
div edi
and eax, 0x157a8466
mov edi, 0x2fbea2fe
xor edx, edx
div edi
add eax, 0x183ac6df
or eax, 0x16ab03e5
sub eax, 0xb0c6c8d8
and eax, 0x34c462d6
add eax, 0x4ac8a4f3
mov edi, 0xebf48b76
xor edx, edx
div edi
imul eax, eax, 0xaca8fc3d
xor eax, 0xb1e3550e
and eax, 0xa102dca0
add eax, 0xa60238af
sub eax, 0xd8ba3abe
and eax, 0x407ffe3
xor eax, 0xe2f30132
or eax, 0xba5c25
mov edi, 0x81c212b8
xor edx, edx
div edi
sub eax, 0x662cca82
or eax, 0xc33fe57a
or eax, 0x5d64afc5
add eax, 0x9eef21c9
or eax, 0x7744b2f2
add eax, 0xebc9ebc5
and eax, 0xe628acf3
sub eax, 0x3a3c5d0c
and eax, 0x41e5be02
mov edi, 0x57e7af72
xor edx, edx
div edi
add eax, 0x5d96270e
or eax, 0xe811b7ba
imul eax, eax, 0x2050c6dd
imul eax, eax, 0x139ada55
or eax, 0x13b16969
xor eax, 0xc8835742
mov edi, 0x8f84bf14
xor edx, edx
div edi
mov edi, 0x3ab3204
xor edx, edx
div edi
mov edi, 0xe4c0a076
xor edx, edx
div edi
imul eax, eax, 0x162e60b1
cmp dword [ecx], 0
setg cl
mov byte [esi + 0x13], cl
cmp eax, 0x9192f8e0
ja 0x1004b0f2
mov al, byte [esi + 0x13]
test al, 1
jne 0x1004b2c9
jmp 0x1004b2fe
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x38]
mov eax, dword [eax]
mov edi, dword [ecx]
movsx eax, byte [eax + edi]
imul eax, dword [edx]
mov edi, 0x100
cdq
idiv edi
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov byte [eax + ecx], dl
mov eax, dword [esi + 0x38]
mov ecx, dword [eax]
add ecx, 0xffffffff
mov dword [eax], ecx
jmp 0x1004af41
jmp 0x1004b303
mov eax, dword [0x100be8c4]
or eax, dword [0x100be8c8]
xor eax, 0xe8c1ed86
sub eax, 0xca1785a2
imul eax, eax, 0x8a70937
or eax, 0xc5cc8a95
xor eax, 0x1abed78e
add eax, 0xea87c5a5
mov ecx, 0x94f055d0
xor edx, edx
div ecx
or eax, 0x84caa1f
or eax, 0x4c426b75
add eax, 0xa855298e
and eax, 0x16463ba2
sub eax, 0x5d348948
xor eax, 0x78552602
and eax, 0xe6dc89a8
add eax, 0xeb104022
mov ecx, 0x16a04659
xor edx, edx
div ecx
sub eax, 0xcedaaa5c
sub eax, 0x26289ccb
or eax, 0x5c39f204
mov ecx, 0xbbde1a3e
xor edx, edx
div ecx
sub eax, 0x2947d22d
sub eax, 0x6940cfd2
sub eax, 0x88ae0f57
mov ecx, 0x70464c02
xor edx, edx
div ecx
add eax, 0xf41ade34
and eax, 0xaa1649bd
or eax, 0x59e6fc42
add eax, 0x580cf19f
sub eax, 0xa9d10e3c
and eax, 0xefaece2f
xor eax, 0x79cda34
and eax, 0xf8ab06aa
mov ecx, 0xd2ca7d72
xor edx, edx
div ecx
add eax, 0x631ce217
and eax, 0x67bad898
xor eax, 0x84a0bf19
and eax, 0x9c5e329b
xor eax, 0xf5431961
or eax, 0xa2fe1f45
and eax, 0xd10afc25
sub eax, 0xf0817186
xor eax, 0x2b7b2317
imul eax, eax, 0xb60311da
xor eax, 0x4b3cd993
add eax, 0x8fbced3e
mov ecx, 0x38e645a
xor edx, edx
div ecx
and eax, 0xa65adbf4
imul eax, eax, 0xfd8ddbc2
mov ecx, 0x9fd04bff
xor edx, edx
div ecx
and eax, 0x2a8f1ccf
imul eax, eax, 0xb1abc399
and eax, 0x92133843
xor eax, 0x8218b152
sub eax, 0x4649383
or eax, 0xfc76c079
or eax, 0xa4b1d03e
add eax, 0xd998d78f
xor eax, 0x1f7160d5
imul eax, eax, 0x2f5c5def
and eax, 0x99f45c6f
add eax, 0x5507226
sub eax, 0x27728bac
mov ecx, 0xb12ccf4b
xor edx, edx
div ecx
imul eax, eax, 0x60ae08a
and eax, 0x5c412c78
xor eax, 0x941df1b1
and eax, 0xc2e48bd6
imul eax, eax, 0x530d373a
add eax, 0x24a2287d
or eax, 0x5c940954
sub eax, 0x1950e822
or eax, 0xb148fd21
cmp eax, 0x66891964
jb 0x1004c1a3
mov eax, dword [0x100be8cc]
xor edx, edx
div dword [0x100be8d0]
or eax, 0x27621781
add eax, 0xc5a8ef7d
mov ecx, 0xe69ac413
xor edx, edx
div ecx
and eax, 0x251357db
and eax, 0xaa702739
xor eax, 0x3c5faf84
mov ecx, 0xe10601fe
xor edx, edx
div ecx
add eax, 0x5544f48
imul eax, eax, 0x7bbd1d9f
mov ecx, 0x41eccbb6
xor edx, edx
div ecx
mov ecx, 0x7230bfbe
xor edx, edx
div ecx
xor eax, 0xca2f2f51
or eax, 0x3f9ebb0b
xor eax, 0x480117d0
or eax, 0x23faf714
add eax, 0xc8275d7a
sub eax, 0x8548fe28
and eax, 0x39c24442
mov ecx, 0x278690a
xor edx, edx
div ecx
sub eax, 0xa113657e
add eax, 0xd764a070
mov ecx, 0xfcc6c422
xor edx, edx
div ecx
and eax, 0x3ba6928f
and eax, 0xc702ef77
xor eax, 0x5a1867f3
sub eax, 0xd6572e39
add eax, 0xcf85419d
sub eax, 0x87be4822
sub eax, 0x1fbea1dd
imul eax, eax, 0xc404e411
or eax, 0x1e50d97
xor eax, 0x864d360f
imul eax, eax, 0xe724508d
xor eax, 0xf14a2613
xor eax, 0xde5cac7e
mov ecx, 0xd655bf79
xor edx, edx
div ecx
mov ecx, 0xdb8caa5f
xor edx, edx
div ecx
xor eax, 0xe2ca7864
or eax, 0x6b33af8a
add eax, 0x70f4f1a2
and eax, 0x8cf6dfde
mov ecx, 0x420a15f2
xor edx, edx
div ecx
or eax, 0x2f40cc70
xor eax, 0xb6797b4f
mov ecx, 0x49cf6376
xor edx, edx
div ecx
and eax, 0xbfa128d7
xor eax, 0x1991799a
xor eax, 0x90bdd234
sub eax, 0xd7fd890a
or eax, 0xcc19cd54
or eax, 0x99f9a63f
xor eax, 0x96961a2f
imul eax, eax, 0x86f270f1
sub eax, 0x902772e7
xor eax, 0xb8b71ac6
mov ecx, 0x5fce0414
xor edx, edx
div ecx
and eax, 0xe8f55db5
xor eax, 0x15f52440
imul eax, eax, 0x17e2b96
imul eax, eax, 0x3f74ee91
imul eax, eax, 0x85ea75c6
imul eax, eax, 0x4bbb8e0
sub eax, 0x9689502c
imul eax, eax, 0x466a0fb8
mov ecx, 0x78891ef2
xor edx, edx
div ecx
xor eax, 0x49c13b46
sub eax, 0xf19bb6a
xor eax, 0x85d888eb
or eax, 0x17c1580d
imul eax, eax, 0x6f98c359
imul eax, eax, 0x71336d0e
or eax, 0x5b076555
cmp eax, 0x39acdd77
je 0x1004c1a3
jmp 0x1004b668
mov eax, dword [0x100be8d4]
xor eax, dword [0x100be8d8]
add eax, 0xcfc316d3
mov ecx, 0xecac73a9
xor edx, edx
div ecx
and eax, 0x27e020f1
imul eax, eax, 0xa895055a
sub eax, 0x84e843d6
imul eax, eax, 0x733dc9b6
and eax, 0x379a08e2
add eax, 0xfbdbe5bc
add eax, 0xfc40870b
sub eax, 0x829fd26a
and eax, 0x43bd57d0
imul eax, eax, 0xee7eab99
xor eax, 0xc107f4a8
add eax, 0xdb4f7614
and eax, 0x444f73aa
or eax, 0x6e83939f
xor eax, 0x1994cee0
and eax, 0xb90842bb
and eax, 0xc6483301
sub eax, 0xba8824b4
sub eax, 0xf4173c5d
imul eax, eax, 0xab0e2fec
xor eax, 0x84cb069d
imul eax, eax, 0x5657ee38
add eax, 0x5abcbf40
sub eax, 0x8ef889ec
and eax, 0xd37f4c00
sub eax, 0x352a5d95
and eax, 0xe1c6cdfd
sub eax, 0x931ee6f9
or eax, 0xba54b825
sub eax, 0x46195371
xor eax, 0x10e609fa
or eax, 0x89291efb
sub eax, 0x6aa8e0e2
xor eax, 0x2a007c2d
or eax, 0xc0365fee
sub eax, 0xc2b9e86d
sub eax, 0x723f55ca
sub eax, 0xa6bc2e84
xor eax, 0xd594e4e0
xor eax, 0xcdd238de
mov ecx, 0x72f3c4dc
xor edx, edx
div ecx
or eax, 0x4d415a7
xor eax, 0xeaf7a0a6
sub eax, 0x8b74c85d
sub eax, 0x6c2c65cf
and eax, 0x516ad154
or eax, 0xc3416466
add eax, 0x9bb0b32b
imul eax, eax, 0xa2a3b938
imul eax, eax, 0xa4eaf00
or eax, 0x73eb13f3
add eax, 0x535b5b1b
xor eax, 0x2750aa53
and eax, 0x39b03f32
xor eax, 0x8d0bfa52
xor eax, 0x85f41331
and eax, 0x3acde4e9
sub eax, 0xc986b4d5
xor eax, 0xced89d4c
sub eax, 0xa030aca2
or eax, 0x7c443fd
and eax, 0xee4a32ed
add eax, 0x1cdca18b
sub eax, 0xe8ea4c45
or eax, 0x2025a64d
imul eax, eax, 0x4418e90f
xor eax, 0x4af6223b
or eax, 0xe843be59
sub eax, 0x25bd143b
xor eax, 0x65d12ee6
cmp eax, 0x9099a17c
je 0x1004c1a8
mov ecx, dword [esi + 0x30]
mov eax, dword [0x100be8dc]
and eax, dword [0x100be8e0]
mov edi, 0x9e2e9af
xor edx, edx
div edi
imul eax, eax, 0x340d6bcf
add eax, 0x4a9afa4e
add eax, 0xa64bf8
imul eax, eax, 0x1a717089
xor eax, 0x1840086f
or eax, 0xb1a387f2
xor eax, 0xeddb3ecc
add eax, 0xa89b5970
and eax, 0xa8cb79f8
or eax, 0x6c753379
add eax, 0x9e505c07
imul eax, eax, 0x13db4066
imul eax, eax, 0x463e608
and eax, 0x7c4bb80a
or eax, 0xe421be49
mov edi, 0xc36b8158
xor edx, edx
div edi
mov edi, 0xa85c0a35
xor edx, edx
div edi
or eax, 0x987048db
and eax, 0x5d843dbe
mov edi, 0xd275be6b
xor edx, edx
div edi
imul eax, eax, 0x55efaa70
and eax, 0xfb3553c7
sub eax, 0x44f40bed
mov edi, 0xe1d70d4a
xor edx, edx
div edi
or eax, 0x6ad3dc88
imul eax, eax, 0x93900074
or eax, 0x43a58a76
add eax, 0x9508e1bf
imul eax, eax, 0x1a1e4eb8
or eax, 0xf7d3e338
imul eax, eax, 0x8d86f3c6
and eax, 0xe72b04cd
add eax, 0xe14bb3f0
xor eax, 0x2de24543
xor eax, 0xc3ae810c
or eax, 0xc7d5217a
sub eax, 0xe0ecd2e
imul eax, eax, 0x91afa15
sub eax, 0x4b58ad5d
and eax, 0xa8531252
or eax, 0xe5a82843
imul eax, eax, 0x3af14480
and eax, 0x91f5a9aa
mov edi, 0x633841d0
xor edx, edx
div edi
add eax, 0x86b97943
sub eax, 0x5224386b
mov edi, 0x5750479b
xor edx, edx
div edi
sub eax, 0x2aa10a8c
mov edi, 0x5b6a2824
xor edx, edx
div edi
or eax, 0x84ce4ba8
add eax, 0xb30d1e3b
mov edi, 0xfdd71d34
xor edx, edx
div edi
sub eax, 0x1de86854
imul eax, eax, 0x34cd1b35
and eax, 0xea80dea1
imul eax, eax, 0xa303359
add eax, 0xee0fdb2e
sub eax, 0xc5200fc5
or eax, 0xc5c7a0ca
mov edi, 0xcf1948ef
xor edx, edx
div edi
and eax, 0x9b2d4c1b
mov edi, 0x2488dc20
xor edx, edx
div edi
and eax, 0xc8ae4778
sub eax, 0x21d4550a
and eax, 0xf0cd36be
add eax, 0xc2a4b681
add eax, 0x1191a9
xor eax, 0xb1ee933d
and eax, 0xf9dc7f78
or eax, 0x639faffc
add eax, 0x429a99d5
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
cmp eax, 0x7a763495
jb 0x1004b7f6
jmp 0x1004ab20
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
cmp eax, 0
je 0x1004bd47
mov eax, dword [0x100be8e4]
xor edx, edx
div dword [0x100be8e8]
and eax, 0xce1d6e07
imul eax, eax, 0x463ed235
sub eax, 0x286768bd
imul eax, eax, 0x12b4967c
sub eax, 0x544feaa3
xor eax, 0xb56772ab
imul eax, eax, 0xf2f976f8
or eax, 0x1b93bf4a
xor eax, 0x1fac9579
add eax, 0x334f6ed3
mov ecx, 0x3aa8ede3
xor edx, edx
div ecx
imul eax, eax, 0xabe49d3
xor eax, 0x7eaa42a2
sub eax, 0xbde8dede
or eax, 0x585dde5c
xor eax, 0xf945dc12
and eax, 0x2eb59169
and eax, 0x11762e99
xor eax, 0xd5fb2d5
sub eax, 0xe973f58f
xor eax, 0x576271fd
sub eax, 0x3e26ca45
sub eax, 0xea688d51
xor eax, 0x1f9b94f
xor eax, 0xa5d99886
mov ecx, 0x143d5dab
xor edx, edx
div ecx
and eax, 0x788d3bb8
or eax, 0x17d6ae0d
imul eax, eax, 0xb1b6ca55
or eax, 0xe3aff056
or eax, 0x46bea37d
sub eax, 0x6e91c4c4
xor eax, 0xcee234dc
xor eax, 0x92e08dbd
or eax, 0xf2815b53
xor eax, 0xabdc17ca
add eax, 0x2b0c8881
and eax, 0x79d8a4b1
xor eax, 0x985e9227
and eax, 0x2c8a0f4d
add eax, 0xabe1b142
and eax, 0xcfb95437
mov ecx, 0x23deb5e
xor edx, edx
div ecx
and eax, 0xdff9c4d3
imul eax, eax, 0xfa922628
sub eax, 0xb9c607d4
or eax, 0x78fb8948
imul eax, eax, 0xb9a3e04a
imul eax, eax, 0xe9a77769
xor eax, 0x9aeb2198
or eax, 0xe0de6ab
and eax, 0x6c266ba5
add eax, 0x7418eb62
add eax, 0xb7e97b6e
add eax, 0xd1cf73f0
and eax, 0xd1eca609
or eax, 0xf82c7ad9
mov ecx, 0xe22672e1
xor edx, edx
div ecx
xor eax, 0xd78bb56e
imul eax, eax, 0xc5bee942
sub eax, 0xb9d4490a
add eax, 0x436c1aea
or eax, 0xee489be3
add eax, 0x99bd2099
add eax, 0x63071404
sub eax, 0xcad93267
mov ecx, 0x46358ee5
xor edx, edx
div ecx
xor eax, 0xac39e6bb
imul eax, eax, 0xd013876e
add eax, 0x22e93e48
or eax, 0xf002804c
xor eax, 0xe84b9749
cmp eax, 0x328a82e7
je 0x1004c1b7
mov eax, dword [0x100be8ec]
and eax, dword [0x100be8f0]
add eax, 0x13bddaab
sub eax, 0x6d6415c3
mov ecx, 0x35c10b10
xor edx, edx
div ecx
sub eax, 0x60a2ae7c
sub eax, 0x5a6d7c5f
xor eax, 0x6167b88e
and eax, 0x89325b42
add eax, 0x460c6eca
sub eax, 0x257886fb
sub eax, 0x5324fca9
or eax, 0x56ce3791
mov ecx, 0x74334985
xor edx, edx
div ecx
imul eax, eax, 0xf194bf9e
add eax, 0xfce25791
sub eax, 0x34c4f3cb
imul eax, eax, 0x40f01cc0
mov ecx, 0x97b85f48
xor edx, edx
div ecx
add eax, 0x3ab99b2e
add eax, 0x55baaaf4
xor eax, 0xca4d7a10
mov ecx, 0x23a5f29b
xor edx, edx
div ecx
add eax, 0x427da975
mov ecx, 0xf1135a9
xor edx, edx
div ecx
and eax, 0x42e4b2ea
imul eax, eax, 0xda093793
mov ecx, 0x4b1348ae
xor edx, edx
div ecx
mov ecx, 0x531a26d3
xor edx, edx
div ecx
add eax, 0x253e8a5a
and eax, 0xd90916c5
xor eax, 0x5720ba52
mov ecx, 0xfa65cfa4
xor edx, edx
div ecx
add eax, 0x64ccb1fc
add eax, 0x6d14c486
imul eax, eax, 0x4dd727af
and eax, 0x614871b3
and eax, 0xfabcd277
sub eax, 0xc123322
sub eax, 0x94daf3d1
mov ecx, 0x4fc76953
xor edx, edx
div ecx
imul eax, eax, 0x5cf883c9
mov ecx, 0xdb06e26b
xor edx, edx
div ecx
imul eax, eax, 0x64b75c7f
xor eax, 0xc2bc0c8d
add eax, 0xfdd49fad
sub eax, 0xb4a7d1ae
mov ecx, 0x2d44af11
xor edx, edx
div ecx
or eax, 0xfd02521e
xor eax, 0xd0be10ff
sub eax, 0x66c75f27
and eax, 0xe2af7868
and eax, 0x5618e87b
sub eax, 0x9a0c96f6
or eax, 0x8021810c
xor eax, 0x5b3c0830
and eax, 0xd70aa430
imul eax, eax, 0x8953681e
xor eax, 0xc2a9d06e
sub eax, 0xeb3027ff
xor eax, 0x42c16ad8
and eax, 0x3871c38d
xor eax, 0x2c198315
sub eax, 0x3a9cef31
xor eax, 0x34f3b974
add eax, 0x5c479198
imul eax, eax, 0x534fa3de
add eax, 0x9f30ae9c
mov ecx, 0x164bc00a
xor edx, edx
div ecx
xor eax, 0x3e875d56
mov ecx, 0xf14700ee
xor edx, edx
div ecx
imul eax, eax, 0x42b4adf4
or eax, 0xfaa28544
mov ecx, 0xdcee7c0a
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esi + 8], ecx
sub esp, 4
mov dword [esp], eax
call fcn.10066f8a
mov eax, dword [esi + 8]
add esp, 4
cmp eax, 0x79c4aa1a
ja 0x1004c1b7
jmp 0x1004bd47
mov eax, dword [esi + 0x3c]
sub esp, 4
mov dword [esp], eax
call fcn.1004c1e0
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x44]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.1004c390
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
add esp, 8
mov dword [esp], eax
call fcn.1004c410
mov ecx, dword [esi + 0x40]
call fcn.1004c480
mov eax, dword [esi + 0x1c]
fstp qword [esi + 0x50]
movsd xmm0, qword [esi + 0x50]
cvtsi2sd xmm1, dword [eax]
ucomisd xmm0, xmm1
jb 0x1004bda8
jmp 0x1004c11d
mov eax, dword [0x100be8f4]
add eax, dword [0x100be8f8]
imul eax, eax, 0xd69a7336
or eax, 0x8a6f49b4
imul eax, eax, 0xfecf75c7
mov ecx, 0xa2963d1c
xor edx, edx
div ecx
and eax, 0xa08beab9
xor eax, 0x2fc1b9f3
add eax, 0x5cb09b2b
sub eax, 0x870d509e
add eax, 0xd4350200
mov ecx, 0xa00780f5
xor edx, edx
div ecx
sub eax, 0x24d90d51
and eax, 0xe2bfe1ec
and eax, 0xfc633a31
imul eax, eax, 0xcd26717e
sub eax, 0x2757fd36
and eax, 0xc4bc9cc0
xor eax, 0x317ad9e1
and eax, 0xa4bbeb4e
imul eax, eax, 0x9b45bc91
mov ecx, 0x8b8bf501
xor edx, edx
div ecx
and eax, 0x829a5595
and eax, 0xe41a3189
sub eax, 0x9bfced6f
xor eax, 0xe7d3cf4a
or eax, 0x59d4b763
or eax, 0x58bdcc60
xor eax, 0x2857ef0e
xor eax, 0x77f01fa9
mov ecx, 0x135b6fa5
xor edx, edx
div ecx
xor eax, 0x803a7a3e
sub eax, 0xdae742de
mov ecx, 0x34ecbf85
xor edx, edx
div ecx
add eax, 0x6e33d175
sub eax, 0x3afd4b85
or eax, 0x927fe18a
and eax, 0x25c5ffae
and eax, 0xdc2f270d
imul eax, eax, 0x63ff4649
imul eax, eax, 0x4fe33a71
and eax, 0x557548ac
sub eax, 0xa0d8b97b
sub eax, 0xfb1d5acf
and eax, 0x7a0ace5b
imul eax, eax, 0xbea2fca5
xor eax, 0x19cb2a57
mov ecx, 0xe0198fd7
xor edx, edx
div ecx
mov ecx, 0x6c2e87af
xor edx, edx
div ecx
add eax, 0x31e3562a
xor eax, 0x853bdaee
sub eax, 0xf21021be
mov ecx, 0xdfd5bbe8
xor edx, edx
div ecx
or eax, 0x73fbd10f
xor eax, 0xbba25a9
xor eax, 0x3c412e82
sub eax, 0xa1d2e6da
or eax, 0xc3c34071
or eax, 0x28c6810f
imul eax, eax, 0x77349d2f
xor eax, 0xbccea7f0
add eax, 0xfd4a90ba
xor eax, 0x3b485e6c
and eax, 0xf495513e
xor eax, 0x58a424fe
mov ecx, 0x6978232b
xor edx, edx
div ecx
mov ecx, 0x43858bd5
xor edx, edx
div ecx
xor eax, 0x23947a25
xor eax, 0xe6ba5aeb
or eax, 0xb0bda93e
add eax, 0xa3df6c56
imul eax, eax, 0x1eee2ce8
mov ecx, 0x86015514
xor edx, edx
div ecx
mov ecx, 0xb7f25067
xor edx, edx
div ecx
cmp eax, 0x61bedbdc
jae 0x1004c1cd
mov eax, dword [0x100be8fc]
xor edx, edx
div dword [0x100be900]
sub eax, 0xf5b057ff
xor eax, 0x349ddaa2
or eax, 0xa0fe7eab
imul eax, eax, 0x4618c56f
or eax, 0x4e9a4bb9
mov ecx, 0x259e2a97
xor edx, edx
div ecx
mov ecx, 0xc686aa7e
xor edx, edx
div ecx
imul eax, eax, 0xd0164475
imul eax, eax, 0x567f6d6b
add eax, 0xea0c618a
sub eax, 0x60343625
imul eax, eax, 0x1fdfbc62
sub eax, 0x4fa1149b
xor eax, 0x7664bc15
xor eax, 0xf501a60f
mov ecx, 0x4c65c332
xor edx, edx
div ecx
or eax, 0xda768196
add eax, 0x194bdca0
and eax, 0xb4db6a0
sub eax, 0xd2840b99
add eax, 0x1603cf99
xor eax, 0x84627995
add eax, 0x117e6cea
imul eax, eax, 0xb1cb8d98
sub eax, 0x67d5657d
add eax, 0xc3482cf8
mov ecx, 0xab7d4631
xor edx, edx
div ecx
mov ecx, 0xcde2d6e1
xor edx, edx
div ecx
xor eax, 0x4d706f1b
imul eax, eax, 0x2f61d81d
imul eax, eax, 0x535599b3
sub eax, 0xc85fd5d
xor eax, 0x8bd427cf
mov ecx, 0xe88971e0
xor edx, edx
div ecx
or eax, 0xf0894fc0
sub eax, 0xba5eaf09
imul eax, eax, 0x240d06fd
or eax, 0xef25a005
mov ecx, 0xd3f794d6
xor edx, edx
div ecx
add eax, 0xfddb55fa
xor eax, 0x6adbacc2
and eax, 0xc96a3f28
mov ecx, 0xcd1f4f5f
xor edx, edx
div ecx
sub eax, 0x9b0b1528
add eax, 0x801c6ed4
and eax, 0xaf7bd96
imul eax, eax, 0x19c0800d
xor eax, 0x52c6083b
or eax, 0x33a2dfad
sub eax, 0x833c5edd
and eax, 0x5a9b66e2
or eax, 0x770e8c6a
imul eax, eax, 0x93c5533d
or eax, 0x6a4f846e
mov ecx, 0x23fe89f0
xor edx, edx
div ecx
and eax, 0xb8b54934
imul eax, eax, 0xa582b5d5
xor eax, 0x453bdf99
add eax, 0x31685720
xor eax, 0xb3e2a059
or eax, 0xf19c0660
xor eax, 0x8601b31a
xor eax, 0x57abb2a3
imul eax, eax, 0xf30c3616
xor eax, 0x4d70244f
and eax, 0x9e779a7c
imul eax, eax, 0x2b7dc72a
xor eax, 0xbf6b3e82
xor eax, 0x20a2f724
mov ecx, 0xc7abdf5b
xor edx, edx
div ecx
sub eax, 0xc92c7ec6
mov ecx, 0x374d07fb
xor edx, edx
div ecx
cmp eax, 0xdc0cb053
je 0x1004c1cd
jmp 0x1004a38f
xor eax, eax
mov dword [esi + 4], eax
mov ecx, dword [esi + 0x5c]
xor ecx, ebp
call fcn.10066f8f
mov eax, dword [esi + 4]
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret
mov edx, dword [esi + 0x4c]
push eax
mov ecx, esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [ecx], edx
sub esp, 4
mov dword [esp], eax
call fcn.1004c1e0
add esp, 4
jmp 0x1004a305
jmp 0x1004a565
sub esp, 0xc
mov dword [esp], 8
mov dword [esp + 4], 8
mov dword [esp + 8], 0x1c
call fcn.100259b0
add esp, 0xc
mov eax, dword [esi + 0x30]
mov dword [eax], 0
jmp 0x1004a91b
mov eax, dword [esi + 0x34]
mov dword [eax], 0
jmp 0x1004ad03
jmp 0x1004b0f2
jmp 0x1004b4a8
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
add ecx, 1
mov dword [eax], ecx
jmp 0x1004b7f6
mov eax, dword [esi + 0xc]
sub esp, 4
mov dword [esp], eax
call fcn.10066f8a
add esp, 4
jmp 0x1004bb6a
jmp 0x1004bf5f